Android onActivityResult()处的Bundel.getString(";)提供空值
我正在开发android应用程序,其中我正在将数据从活动2传递回活动1。我正在通过意图传递它。问题是在活动1中,它在bundle中显示值,但当我使用Android onActivityResult()处的Bundel.getString(";)提供空值,android,android-intent,onactivityresult,Android,Android Intent,Onactivityresult,我正在开发android应用程序,其中我正在将数据从活动2传递回活动1。我正在通过意图传递它。问题是在活动1中,它在bundle中显示值,但当我使用bundle.getString(“”)时,它向我显示空值。在调试中,我使用bundlebundle[{list\u size=3}]。下面给出了我的代码,请在这里帮助我 活动1: @Override protected void onActivityResult(int requestCode, int resultCode, Intent
bundle.getString(“”)时代码>,它向我显示空值。在调试中,我使用bundlebundle[{list\u size=3}]
。下面给出了我的代码,请在这里帮助我
活动1:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==105){
TextView txtCounter = (TextView) findViewById(R.id.txtCounter);
// It showing value at MBuddle, but at MBuddle it is showing null.
Bundle MBuddle = data.getExtras();
String MMessage = MBuddle .getString("list_size");
txtCounter.setText(MMessage);
}
}
活动2:
@Override
public void onBackPressed() {
int REQUEST_CONTACTS = 105;
Intent intent = new Intent();
intent.putExtra("list_size", fListContacts.size());
setResult(REQUEST_CONTACTS, intent);
finish();
}
这里必须使用getIntent()。。像这样更改代码
Intent intent = new Intent();
到
活动1
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==105){
TextView txtCounter = (TextView) findViewById(R.id.txtCounter);
// It showing value at MBuddle, but at MBuddle it is showing null.
Bundle MBuddle = data.getExtras();
String MMessage = MBuddle .getString("list_size");
txtCounter.setText(MMessage);
}
}
活动2
@Override
public void onBackPressed() {
int REQUEST_CONTACTS = 105;
Intent intent = getIntent();
intent.putExtra("list_size", fListContacts.size());
setResult(REQUEST_CONTACTS, intent);
finish();
}
===============
Intent intent = new Intent(getIntent().getAction());
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
intent.putExtra(KEY, data);
setResult(RESULT_OK, intent);
finish();
结果\u OK可以是一个int值,您应该尝试更改活动1,如下所示。这可能是因为fListContacts.size()
返回一个int
值:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==105){
TextView txtCounter = (TextView) findViewById(R.id.txtCounter);
Bundle MBuddle = data.getExtras();
String MMessage = String.valueOf(MBuddle.getInt("list_size"));
txtCounter.setText(MMessage);
}
}
在活动2中
将new Intent()
更改为getIntent()
谢谢您的回答,但它仍然不起作用。你能在这里给我多一点代码片段和提示吗,这对我很有用。谢谢你的回答亲爱的。但它仍然不起作用。它在这里给了我相同的空值。请在这里帮助我。你能在这里发布你的错误消息吗..和与活动1相关的xml实际上这里没有错误。它只是在mbudle.getString(“list_size”)处显示空值;xml只是显示数据的普通文本视图。请帮帮我
Intent intent = new Intent(getIntent().getAction());
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
intent.putExtra(KEY, data);
setResult(RESULT_OK, intent);
finish();
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==105){
TextView txtCounter = (TextView) findViewById(R.id.txtCounter);
Bundle MBuddle = data.getExtras();
String MMessage = String.valueOf(MBuddle.getInt("list_size"));
txtCounter.setText(MMessage);
}
}