我有三个不同的类,当点击class1中的ImageButton
时,我希望class3中的TextView
更改为" 50"。另一方面,当单击class2中的ImageButton
时,我希望class3中的TextView应该更改为" 0"。
的Class1:
ImageButton button1 = (ImageButton) this.findViewById(R.id.imageButton);
if (button1 != null) {
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent passdata_intent1 = new Intent(class1.this, class3.class);
String data1 = "50";
Bundle bundle1 = new Bundle();
bundle1.putString("firstdata", data1);
passdata_intent1.putExtras(bundle1);
startActivity(passdata_intent1);
}
});
}
等级2:
ImageButton button1 = (ImageButton) this.findViewById(R.id.imageButton);
if (button1 != null) {
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent passdata_intent2 = new Intent(class2.this, class3.class);
String data2 = "0";
Bundle bundle2 = new Bundle();
bundle2.putString("seconddata", data2);
passdata_intent2.putExtras(bundle2);
startActivity(passdata_intent2);
}
});
}
CLASS3:
TextView score = (TextView) findViewById(R.id.textViewscore);
Bundle bundle1 = getIntent().getExtras();
String data_1 = bundle1.getString("firstdata");
score.setText(data_1);
Bundle bundle2 = getIntent().getExtras();
String data_2 = bundle2.getString("seconddata");
score.setText(data_2);
所以我的问题是,当我启动应用程序并单击class2中的ImageButton
时,class3中的TextView
会发生变化。但是当我点击class1中的ImageButton
时,class3中没有任何变化。
答案 0 :(得分:0)
在这两种情况下,你都会覆盖得分值。如果没有逻辑可以正常工作。
if(getIntent().hasExtras("firsdata")){
Bundle bundle1 = getIntent().getExtras();
String data_1 = bundle1.getString("firstdata");
score.setText(data_1);
} else{
Bundle bundle2 = getIntent().getExtras();
String data_2 = bundle2.getString("seconddata");
score.setText(data_2);
}
答案 1 :(得分:0)
从代码片段中我看到问题似乎是你首先在意图中检查“firstdata”extra将其设置为文本视图,然后检查“seconddata”extra并覆盖文本视图中的值用它。
当你将firstdata传递给activity时,seconddata(如果没有传递)应为null,因此你将得分文本设置为null并从中删除第一个数据值。
为了将数据从2个不同的入口点传递到同一文本视图,不需要为附加组件使用2个不同的名称。 使用class1和class2的“firstdata”额外名称来传递数据,它应该可以工作。