Android onActivityResult()处的Bundel.getString(";)提供空值

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

我正在开发android应用程序,其中我正在将数据从活动2传递回活动1。我正在通过意图传递它。问题是在活动1中,它在bundle中显示值,但当我使用
bundle.getString(“”)时,它向我显示空值。在调试中,我使用bundle
bundle[{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);
    }
}