Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在onActivityResult中,我从接收到的意图中获取空值_Android_Android Intent_Android Bundle - Fatal编程技术网

Android 在onActivityResult中,我从接收到的意图中获取空值

Android 在onActivityResult中,我从接收到的意图中获取空值,android,android-intent,android-bundle,Android,Android Intent,Android Bundle,我有两项活动:A和B 在活动A中:在“btn_navSimilarColor”按钮上单击-我用startActivityForResult给B打了一个电话。已经有一些意图在一个使用相机和画廊和意图数据,我从以前的活动中收到 在活动B中:我在onCreate()内进行了一个asyncTask调用,在asyncTask的onPostExecute()中,我向活动a发回了额外的意图 活动A: public class A extends Activity { ... @Override public

我有两项活动:A和B

在活动A中:在“btn_navSimilarColor”按钮上单击-我用startActivityForResult给B打了一个电话。已经有一些意图在一个使用相机和画廊和意图数据,我从以前的活动中收到

在活动B中:我在onCreate()内进行了一个asyncTask调用,在asyncTask的onPostExecute()中,我向活动a发回了额外的意图

活动A:

public class A extends Activity 
{
...
@Override
public void onCreate(Bundle savedInstanceState)
{
  ...
  Bundle extras = getIntent().getExtras();
    if (extras != null) {
        edtTxtColorCode.setText(extras.getString("xtra_selectedColor"));
    } else {
        Toast.makeText(this, "There was a problem in the response!", Toast.LENGTH_SHORT).show();
    }
}


public void buttonOnClick(View view)
{
    switch (view.getId())
    {
        case R.id.btnCamera:
            startActivityForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE), FLAG_CAMERA);

            break;

        case R.id.btnGallery:
            startActivityForResult(
                    new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI),  FLAG_GALLERY);
            break;

        case R.id.btn_navSimilarColor:
            Intent intnt_similar = new Intent(A.this, B.class);
            intnt_similar.putExtra("xtraColor", edtTxtColorCode.getText().toString());
            startActivityForResult(intnt_similar, FLAG_navSimilarColorAct);

            break;

        default:
            break;
    }

}


@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.v("resultCode","="+resultCode);
    if (resultCode == Activity.RESULT_OK)
    {
        mCursor = null;
        if (requestCode == FLAG_GALLERY)
            onSelectFromGalleryResult(data);
        else if (requestCode == FLAG_CAMERA)
            onCaptureImageResult(data);
        else if(requestCode == FLAG_navSimilarColorAct)
        {   Bundle extras = getIntent().getExtras();
            String stt = extras.getString("intnt_similarColor");
            if (extras != null)

edtTxtColorCode.setText(extras.getString("intnt_similarColor"));
        }
    }
}
 }
public class B extends Activity 
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
    ....
     receiveIntent();
     new AsyncConver().execute();

    }

    private void receiveIntent() {
    Bundle extras = getIntent().getExtras();
    if (extras != null)
        strIntentrecvdColor = extras.getString("xtraColor");
    else
        Toast.makeText(this, "There was a problem in the response!", Toast.LENGTH_SHORT).show();
    }

     class AsyncConvert extends AsyncTask<String, Integer, String>
    {
    ...
     @Override
    protected void onPostExecute(String s) 
    {
        super.onPostExecute(s);

         Custom_SimilarColorListAdapter gridAdapter = new Custom_SimilarColorListAdapter(SimilarColors.this, list_SimilarColors);
        grdVw.setAdapter(gridAdapter);

        grdVw.setOnItemClickListener(new AdapterView.OnItemClickListener()
        {
        @Override
        public void onItemClick(AdapterView<?> parent, View v, int position, long id)
        {
            String str_colorCodeSimilar = ((TextView) v.findViewById(R.id.listrow_similar_code)).getText().toString();
            Toast.makeText(getApplicationContext(), "ID:: "+ str_colorCodeSimilar , Toast.LENGTH_SHORT).show();

            Intent retrnIntnt = new Intent();
            retrnIntnt.putExtra("intnt_similarColor", str_colorCodeSimilar);
            setResult(RESULT_OK, retrnIntnt);
            finish();

        }
        });

        }
    }

}
活动B:

public class A extends Activity 
{
...
@Override
public void onCreate(Bundle savedInstanceState)
{
  ...
  Bundle extras = getIntent().getExtras();
    if (extras != null) {
        edtTxtColorCode.setText(extras.getString("xtra_selectedColor"));
    } else {
        Toast.makeText(this, "There was a problem in the response!", Toast.LENGTH_SHORT).show();
    }
}


public void buttonOnClick(View view)
{
    switch (view.getId())
    {
        case R.id.btnCamera:
            startActivityForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE), FLAG_CAMERA);

            break;

        case R.id.btnGallery:
            startActivityForResult(
                    new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI),  FLAG_GALLERY);
            break;

        case R.id.btn_navSimilarColor:
            Intent intnt_similar = new Intent(A.this, B.class);
            intnt_similar.putExtra("xtraColor", edtTxtColorCode.getText().toString());
            startActivityForResult(intnt_similar, FLAG_navSimilarColorAct);

            break;

        default:
            break;
    }

}


@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.v("resultCode","="+resultCode);
    if (resultCode == Activity.RESULT_OK)
    {
        mCursor = null;
        if (requestCode == FLAG_GALLERY)
            onSelectFromGalleryResult(data);
        else if (requestCode == FLAG_CAMERA)
            onCaptureImageResult(data);
        else if(requestCode == FLAG_navSimilarColorAct)
        {   Bundle extras = getIntent().getExtras();
            String stt = extras.getString("intnt_similarColor");
            if (extras != null)

edtTxtColorCode.setText(extras.getString("intnt_similarColor"));
        }
    }
}
 }
public class B extends Activity 
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
    ....
     receiveIntent();
     new AsyncConver().execute();

    }

    private void receiveIntent() {
    Bundle extras = getIntent().getExtras();
    if (extras != null)
        strIntentrecvdColor = extras.getString("xtraColor");
    else
        Toast.makeText(this, "There was a problem in the response!", Toast.LENGTH_SHORT).show();
    }

     class AsyncConvert extends AsyncTask<String, Integer, String>
    {
    ...
     @Override
    protected void onPostExecute(String s) 
    {
        super.onPostExecute(s);

         Custom_SimilarColorListAdapter gridAdapter = new Custom_SimilarColorListAdapter(SimilarColors.this, list_SimilarColors);
        grdVw.setAdapter(gridAdapter);

        grdVw.setOnItemClickListener(new AdapterView.OnItemClickListener()
        {
        @Override
        public void onItemClick(AdapterView<?> parent, View v, int position, long id)
        {
            String str_colorCodeSimilar = ((TextView) v.findViewById(R.id.listrow_similar_code)).getText().toString();
            Toast.makeText(getApplicationContext(), "ID:: "+ str_colorCodeSimilar , Toast.LENGTH_SHORT).show();

            Intent retrnIntnt = new Intent();
            retrnIntnt.putExtra("intnt_similarColor", str_colorCodeSimilar);
            setResult(RESULT_OK, retrnIntnt);
            finish();

        }
        });

        }
    }

}
但在活动A的onActivityResult中,我没有获得“intnt_similarColor”的捆绑包额外数据,即:

    String stt = extras.getString("intnt_similarColor");
相反,我得到了onCreate()中“xtra\u selectedColor”的额外捆绑包


为什么会发生这种情况?我如何获取以前的捆绑包数据,而不是从活动B传递的数据?

change
bundle extras=getIntent().getExtras()
to
Bundle extras=data.getExtras()

更改
Bundle extras=getIntent().getExtras()
to
Bundle extras=data.getExtras()

从onActivityResult接收的数据意图中获取字符串。使用
Bundle extras=getIntent().getExtras()其中getIntent()实际上是类A接收到的意图

因此,您必须使用:

String stt = data.getStringExtra("intnt_similarColor");

从onActivityResult接收的数据意图中获取字符串。使用
Bundle extras=getIntent().getExtras()其中getIntent()实际上是类A接收到的意图

因此,您必须使用:

String stt = data.getStringExtra("intnt_similarColor");