簡體   English   中英

將數據從一個活動發送到另一個startactivity

[英]Sending data from one activity to another startactivityforresult

我在論壇上進行了搜索,但找不到適合我的正確答案。 我在下面包括了相關部分

活動一

implicitActivationButton.setOnClickListener(new OnClickListener() {

            // Call startImplicitActivation() when pressed
            @Override
            public void onClick(View v) {

Intent myIntent = new Intent(ActivityLoaderActivity.this,
                ExplicitlyLoadedActivity.class);
        startActivityForResult(myIntent, GET_TEXT_REQUEST_CODE);
            }
        });

還有一點

  protected void onActivityResult(int requestCode, int resultCode, Intent data) {

            Log.i(TAG, "Entered onActivityResult()");


            String input=data.getStringExtra(TAG);
            mUserTextView.setText(input);
        }

這是用戶輸入一些數據后的活動2

String input=mEditText.getText().toString();


    Intent i = new Intent(ExplicitlyLoadedActivity.this, ActivityLoaderActivity.class);
    i.putExtra("TAG",input);
    startActivity(i);       
    this.setResult(RESULT_OK);      
    finish();

完全沒有錯誤消息,但是屏幕上的文本沒有更新。 它應該

不需要第二節課的開始活動:

您需要使用以下方式更改代碼:

Intent i = new Intent();  // or // Intent i = getIntent()
i.putExtra("TAG",input);
setResult(RESULT_OK , i);         
finish();

對於取消,

setResult(RESULT_CANCELED, i);        
finish();

這樣嘗試

String input=data.getStringExtra("TAG"); 

代替

 String input=data.getStringExtra(TAG);

在Activity2上,您正在啟動ExplicityLoadedActivity的新實例,而不是返回到先前的實例。

您應該只設置結果,然后完成第二項活動。

這是您可以在第二個活動中嘗試的代碼:

Intent returnIntent = new Intent();
returnIntent.putExtra("TAG",input);
setResult(RESULT_OK, returnIntent);        
finish();

像這樣嘗試在ExplicitlyLoadedActivity設置結果代碼

String input=mEditText.getText().toString();
Intent i = new Intent();
i.putExtra("TAG",input);
this.setResult(RESULT_OK,i);      
finish();

並在ActivityLoaderActivity訪問結果字符串,即

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

            Log.i(TAG, "Entered onActivityResult()");


            String input=data.getStringExtra("TAG");
            mUserTextView.setText(input);
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM