我有一个代码,使用 putextra 方法将数据从 Activity 推送到另一个 Activity ,我想使用相同的键推送不同的值 代码:
String int_value = "int_value";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, SecondScreen.class);
intent.putExtra(int_value , 0);
startActivity(intent);
}
});
Button btn2 = (Button) findViewById(R.id.btn2);
btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, SecondScreen.class);
intent.putExtra(int_value , 1);
startActivity(intent);
}
});
在下一个 Activity 中:
int value;
String int_value = "int_value";
View myLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second_screen);
Intent intent = getIntent();
int temp = intent.getIntExtra(int_value, value);
myLayout = findViewById(R.id.myLayout);
switch (value){
case 0:
myLayout.setBackgroundResource(R.drawable.a);
Log.e("VALUE" , String.valueOf(value));
break;
case 1:
myLayout.setBackgroundResource(R.drawable.b);
Log.e("VALUE" , String.valueOf(value));
break;
}
但是背景总是变成a.jpg,尽管我通过了0和1(或者至少我认为我做到了......) 这里有什么问题吗?
最佳答案
只需将开关中的值更改为temp
switch ( temp){
case 0:
myLayout.setBackgroundResource(R.drawable.a);
Log.e("VALUE" , String.valueOf(value));
break;
case 1:
myLayout.setBackgroundResource(R.drawable.b);
Log.e("VALUE" , String.valueOf(value));
break;
}
because you are saving the value inside temp
int temp = intent.getIntExtra(int_value, value);
关于java - Android putExtra 推送数据使用相同的按键从不同的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44051945/