首页 > 解决方案 > 在 Android 中重用相同的选项卡活动

问题描述

我正在尝试在单击MainActivity. 选项卡活动对第一张卡没有任何问题。但不适用于其他卡。我为主要活动中的每张卡片实现了 3 个片段。但是,我无法找到解决方案。每次单击主页上的不同卡片时,有什么方法可以使用相同的选项卡活动和片段?我在每个片段中只有一个文本框。这是代码:

MainActivity


import androidx.appcompat.app.AppCompatActivity;
import androidx.cardview.widget.CardView;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    CardView card1, card2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        card1 = findViewById(R.id.card_prayer_1);
        card2 = findViewById(R.id.card_prayer_2);

        card1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent myIntent1 = new Intent(MainActivity.this, Prayer1Tabbed.class);
                startActivity(myIntent1);
            }
        });

        card2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent myIntent2 = new Intent(MainActivity.this, Prayer2Tabbed.class);
                startActivity(myIntent2);
            }
        });
    }
}

然后

Prayer1Tabbed


import androidx.appcompat.app.AppCompatActivity;
import androidx.cardview.widget.CardView;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    CardView card1, card2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        card1 = findViewById(R.id.card_prayer_1);
        card2 = findViewById(R.id.card_prayer_2);

        card1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent myIntent1 = new Intent(MainActivity.this, Prayer1Tabbed.class);
                startActivity(myIntent1);
            }
        });

        card2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent myIntent2 = new Intent(MainActivity.this, Prayer2Tabbed.class);
                startActivity(myIntent2);
            }
        });
    }
}

Prayer2Tabbed

package com.example.vishal.buddhapoojapath_marathi;

import android.os.Bundle;

import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
import com.google.android.material.tabs.TabLayout;

import androidx.viewpager.widget.ViewPager;
import androidx.appcompat.app.AppCompatActivity;

import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

import com.example.vishal.buddhapoojapath_marathi.ui.main.SectionsPagerAdapter;
import com.example.vishal.buddhapoojapath_marathi.databinding.ActivityPrayer2TabbedBinding;

public class Prayer2Tabbed extends AppCompatActivity {

    private ActivityPrayer2TabbedBinding binding;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        binding = ActivityPrayer2TabbedBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

        SectionsPagerAdapter sectionsPagerAdapter = new SectionsPagerAdapter(this, getSupportFragmentManager());
        ViewPager viewPager = binding.viewPager;
        viewPager.setAdapter(sectionsPagerAdapter);
        TabLayout tabs = binding.tabs;
        tabs.setupWithViewPager(viewPager);
    }
}

SectionsPageAdapter

package com.example.vishal.buddhapoojapath_marathi;

import android.os.Bundle;

import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
import com.google.android.material.tabs.TabLayout;

import androidx.viewpager.widget.ViewPager;
import androidx.appcompat.app.AppCompatActivity;

import android.view.Menu;
import android.view.MenuItem;
import android.view.View;

import com.example.vishal.buddhapoojapath_marathi.ui.main.SectionsPagerAdapter;
import com.example.vishal.buddhapoojapath_marathi.databinding.ActivityPrayer2TabbedBinding;

public class Prayer2Tabbed extends AppCompatActivity {

    private ActivityPrayer2TabbedBinding binding;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        binding = ActivityPrayer2TabbedBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

        SectionsPagerAdapter sectionsPagerAdapter = new SectionsPagerAdapter(this, getSupportFragmentManager());
        ViewPager viewPager = binding.viewPager;
        viewPager.setAdapter(sectionsPagerAdapter);
        TabLayout tabs = binding.tabs;
        tabs.setupWithViewPager(viewPager);
    }
}```

标签: androidandroid-fragmentsandroid-viewpagerandroid-tabactivity

解决方案


推荐阅读