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]);
}
所以我在 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]);
}