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

我对 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);

        }



守着星空守着你
浏览 93回答 3
3回答

叮当猫咪

你可以试试这个..这会有所帮助&nbsp;public class home extends Fragment {&nbsp; &nbsp; &nbsp; &nbsp;private Button btn_dumge_login;&nbsp; &nbsp; &nbsp; &nbsp; public home() {&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; @Override&nbsp; &nbsp; &nbsp; &nbsp; public void onCreate(Bundle savedInstanceState) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; super.onCreate(savedInstanceState);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; @Override&nbsp; &nbsp; &nbsp; &nbsp; public View onCreateView(LayoutInflater inflater, ViewGroup container,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Bundle savedInstanceState) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return inflater.inflate(R.layout.activity_home, container, false);&nbsp; &nbsp; &nbsp; &nbsp; }@Override&nbsp; &nbsp; public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {&nbsp; &nbsp; &nbsp; &nbsp; super.onViewCreated(view, savedInstanceState);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;btn_dumge_login = view.findViewById(R.id.dumgeLogin)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;btn_dumge_login.setOnClickListener(new View.OnClickListener() {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @Override&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; public void onClick(View view) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Intent intent = new Intent(getActivity(), TestActivity.class) ;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; getActivity().startActivity(intent);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; }}

12345678_0001

View view = inflater.inflate(R.layout.your_layout_file, container, false);view.findViewById(R.id.button_id).setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View view) {&nbsp; &nbsp;getContext().startActivity(new Intent(getContext(), YourNewActivity.class));});return view;您可以在 onCreateView() 方法的片段“home”中使用此代码

慕娘9325324

您应该首先选择要从中导航的视图,例如 ID 为 dugmeLogin 的按钮那么你的代码应该是这样的@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Bundle savedInstanceState) {&nbsp; &nbsp; View view = inflater.inflate(R.layout.activity_home, container, false);&nbsp; &nbsp; Button loginButton = view.findViewById(R.id.dugmeLogin);&nbsp; &nbsp; loginButton.setOnClickListener(v -> {&nbsp; &nbsp; &nbsp; &nbsp; // You code goes here&nbsp; &nbsp; });&nbsp; &nbsp; return view;}这是你的 home.java
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java