我在一项活动中有以下代码:
in= new Intent(ThisActivity.this,AnotherActivity.class);
imgarr = new ImageView[55];
imgarr[0]=(ImageView) findViewById(R.id.species3);
imgarr[0].setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
b.putString("specno",Integer.toString(0)); in.putExtras(b);
in.setClassName("com.DuckHuntersJournal","com.DuckHuntersJournal._1_TagKillActivity");
startActivity(in);
}
});
这段代码在另一个:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu1tagkill);
if ((savedInstanceState != null) && savedInstanceState.containsKey("specno")) {
Log.e(tag, "intent from species not null");
species.setText(savedInstanceState.getString("specno"));
}
但是,savedInstanceState为null。
为什么我没有从第一项活动中获得任何数据?
答案 0 :(得分:3)
您需要使用:
getIntent().getExtras().getString("specno");
以便从第一个活动中获取传递的字符串。
编辑:我不确定您要执行的操作...要从另一个Activity
获取您需要使用getIntent().getExtras()
的当前数据
要在Activity
转到后台时保存当前统计信息,请使用onSaveInstanceState()
方法保存数据,然后使用onCreate(Bundle savedInstance)
方法从{{1}获取保存的数据参数。
答案 1 :(得分:1)
您需要在接收活动中执行以下操作:
String species = getIntent().getStringExtra("specno");