为了账号安全,请及时绑定邮箱和手机立即绑定

如何添加一个 onClickListener 来打开一个新的 Activity 到 Fragment

如何添加一个 onClickListener 来打开一个新的 Activity 到 Fragment

守着星空守着你 2023-08-04 10:01:22
我对 android studio 相当陌生,所以我会尽力解释。我使用碎片制作了一个菜单,所以我的activity_home活动是碎片化的。在碎片活动中,我创建了一个按钮,单击该按钮后,应该打开一个新活动。问题是我不知道如何实现onClickListener碎片活动内部。我所经历的每一个教程都是从头开始的。这是我的主要活动:package com.example.relja.diplomskirad;import android.os.Bundle;import android.support.design.widget.TabLayout;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.Toolbar;import android.view.View;import android.widget.Button;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private Toolbar toolbar;    private TabLayout tabLayout;    private ViewPager viewPager;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        toolbar = (Toolbar) findViewById(R.id.toolbar);        setSupportActionBar(toolbar);        getSupportActionBar().setDisplayHomeAsUpEnabled(false);        viewPager = (ViewPager) findViewById(R.id.viewpager);        setupViewPager(viewPager);        tabLayout = (TabLayout) findViewById(R.id.tabs);        tabLayout.setupWithViewPager(viewPager);    }    private void setupViewPager(ViewPager viewPager) {        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());        adapter.addFragment(new home(), "Home");        adapter.addFragment(new profil(), "Profil");        adapter.addFragment(new mapa(), "Mapa");        viewPager.setAdapter(adapter);    }    class ViewPagerAdapter extends FragmentPagerAdapter {        private final List<Fragment> mFragmentList = new ArrayList<>();        private final List<String> mFragmentTitleList = new ArrayList<>();        public ViewPagerAdapter(FragmentManager manager) {            super(manager);        }
查看完整描述

3 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

你可以试试这个..这会有所帮助


 public class home extends Fragment {

       private Button btn_dumge_login;


        public home() {

        }


        @Override

        public void onCreate(Bundle savedInstanceState) {

            super.onCreate(savedInstanceState);


        }


        @Override

        public View onCreateView(LayoutInflater inflater, ViewGroup container,

                                 Bundle savedInstanceState) {

            return inflater.inflate(R.layout.activity_home, container, false);


        }

@Override

    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {

        super.onViewCreated(view, savedInstanceState);


         btn_dumge_login = view.findViewById(R.id.dumgeLogin)

           btn_dumge_login.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) {

                Intent intent = new Intent(getActivity(), TestActivity.class) ;

                getActivity().startActivity(intent);

            }

        });

    }


}


查看完整回答
反对 回复 2023-08-04
?
12345678_0001

TA贡献1802条经验 获得超5个赞

View view = inflater.inflate(R.layout.your_layout_file, container, false);

view.findViewById(R.id.button_id).setOnClickListener(new View.OnClickListener(){

@Override

public void onClick(View view) {

   getContext().startActivity(new Intent(getContext(), YourNewActivity.class));

});

return view;

您可以在 onCreateView() 方法的片段“home”中使用此代码


查看完整回答
反对 回复 2023-08-04
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

您应该首先选择要从中导航的视图,例如 ID 为 dugmeLogin 的按钮


那么你的代码应该是这样的


@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

                         Bundle savedInstanceState) {


    View view = inflater.inflate(R.layout.activity_home, container, false);


    Button loginButton = view.findViewById(R.id.dugmeLogin);


    loginButton.setOnClickListener(v -> {

        // You code goes here

    });

    return view;



}

这是你的 home.java


查看完整回答
反对 回复 2023-08-04
  • 3 回答
  • 0 关注
  • 89 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信