Android Studio:将按钮从 BottomNativationView 发送到其他页面

Android Studio: send buttons from BottomNativationView to other pages

所以我在 MainActivity 上有这段代码:

 public class MainActivity extends AppCompatActivity {

TextView missao, MissaoDia;
Button Change, Done;
int x = 0;
int[] array = new int[]{R.string.m1, R.string.m2, R.string.m3, R.string.m4, R.string.m5, R.string.m6, R.string.m7};

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

    BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.navigation);

    bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            switch (item.getItemId()) {
                case R.id.navigation_home:
                    break;
                case R.id.navigation_perfil:
                    Intent intent = new Intent(MainActivity.this, perfil.class);
                    startActivity(intent);
                    break;
                case R.id.navigation_mais:
                    Intent intent1 = new Intent(MainActivity.this, mais.class);
                    startActivity(intent1);
                    break;
            }
            return true;
        }

        });

    missaoTxt();

}

public void missaoTxt(){
    setContentView(R.layout.activity_main);

    missao = (TextView) findViewById(R.id.missao);
    MissaoDia = (TextView) findViewById(R.id.MissaoDia);
    Change = (Button) findViewById(R.id.Change);
    Done = (Button) findViewById(R.id.Done);

    missao.setText(array[x]);

}


public void TrocarMissao(View view) {
    x = x+1;
    missaoTxt();
}

我的 BottomNavigationView 有三个按钮,"home"、"perfil"(个人资料)和 "mais"(更多),但其中 none 个可以使用。我为他们每个人都有各自名称的活动。我尝试关注 youtube 视频和其他教程,但似乎无法正常工作。 它不显示任何错误消息,它们是可点击的但不执行任何操作。

PS: 我是编程新手

您正在重置布局,这将删除所有先前初始化的视图和侦听器,因此

public void missaoTxt(){
    // setContentView(R.layout.activity_main);
    // ^^^^^^^^^^^^^^^ remove this 
    missao = (TextView) findViewById(R.id.missao);
    MissaoDia = (TextView) findViewById(R.id.MissaoDia);
    Change = (Button) findViewById(R.id.Change);
    Done = (Button) findViewById(R.id.Done);

    missao.setText(array[x]);

}

并且不要通过点击侦听器调用 missaoTxt() 来一次又一次地初始化视图,因此请使用

public void missaoTxt(){
    missao = (TextView) findViewById(R.id.missao);
    MissaoDia = (TextView) findViewById(R.id.MissaoDia);
    Change = (Button) findViewById(R.id.Change);
    Done = (Button) findViewById(R.id.Done);    
}


public void TrocarMissao(View view) {
    x = x+1;
    missao.setText(array[x]);
}