2014-02-28 32 views
0

我遇到了某个实验室任务的问题,目标是在屏幕上返回用户的文本。但是,在查看interweb最深的最深处之后,我找不到答案。如何使用onActivityRequest正确返回用户的文本输入

这里是我的代码,请告诉我如何返回用户的输入

AcitivityLoaderActivity类的启动活动ExplicitlyLoadedActivity代码:

// TODO - Create a new intent to launch the ExplicitlyLoadedActivity class 
    Intent explicitActivity = new Intent(ActivityLoaderActivity.this,ExplicitlyLoadedActivity.class); 
    // TODO - Start an Activity using that intent and the request code defined above 
    startActivity(explicitActivity); 

这是接收结果对用户编辑文本

代码
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    Log.i(TAG, "Entered onActivityResult()"); 
    // TODO - Process the result only if this method received both a 
    // RESULT_OK result code and a recognized request code 
    // If so, update the Textview showing the user-entered text. 
    if(requestCode==GET_TEXT_REQUEST_CODE){ 
     if(resultCode==RESULT_OK){ 
      mUserTextView.setText(data.getStringExtra("givenText")); 

     }//end if 

    }//end if 

} 

ExplicitlyLoaderActivity类代码:

private void enterClicked() { 
    final int GET_TEXT_REQUEST_CODE = 1; 
    Log.i(TAG,"Entered enterClicked()"); 
    // TODO - Save user provided input from the EditText field 
    String givenText = mEditText.getText().toString(); 
    // TODO - Create a new intent and save the input from the EditText field as an extra 
    Intent editText = new Intent(); 
    editText.putExtra("givenText",givenText); 
    // TODO - Set Activity's result with result code RESULT_OK 
    setResult(RESULT_OK,editText); 
    // TODO - Finish the Activity 
    finish(); 
} 
+0

哪里是你startActivityForResult(); –

+0

我不知道我必须添加这个。你能解释一下这个方法的作用吗? – MrTimotheos

+0

在AcitivityLoaderActivity中是** enterClicked()**? – Piyush

回答

1

AcitivityLoaderActivity类代码:

使用

 final int GET_TEXT_REQUEST_CODE = 1; 
     Intent i=new Intent(AcitivityLoaderActivity.this,ExplicitlyLoadedAcitivty.class); 
       startActivityForResult(i,GET_TEXT_REQUEST_CODE); 

onActivityResult()方法

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

Log.i(TAG, "Entered onActivityResult()"); 
// TODO - Process the result only if this method received both a 
// RESULT_OK result code and a recognized request code 
// If so, update the Textview showing the user-entered text. 
if(requestCode==GET_TEXT_REQUEST_CODE){ 
    if(resultCode==RESULT_OK){ 
     mUserTextView.setText(data.getStringExtra("givenText")); 

    }//end if 

}//end if 

    } 

ExplicitlyLoadedAcitivty

 private void enterClicked() { 
final int GET_TEXT_REQUEST_CODE = 1; 
Log.i(TAG,"Entered enterClicked()"); 
// TODO - Save user provided input from the EditText field 
String givenText = mEditText.getText().toString(); 
// TODO - Create a new intent and save the input from the EditText field as an extra 
Intent editText = new Intent(); 
editText.putExtra("givenText",givenText); 
// TODO - Set Activity's result with result code RESULT_OK 
setResult(RESULT_OK,editText); 
// TODO - Finish the Activity 
finish(); 
    } 
+0

非常感谢! – MrTimotheos

0

试试这个

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

    Log.i(TAG, "Entered onActivityResult()"); 
    // TODO - Process the result only if this method received both a 
    // RESULT_OK result code and a recognized request code 
    // If so, update the Textview showing the user-entered text. 
    if(requestCode==GET_TEXT_REQUEST_CODE){ 
     if(resultCode==RESULT_OK){ 
      Bundle extras = data.getExtras(); 
      String editTextString = extras.getString("end_location"); 

     }//end if 

    }//end if 

} 
相关问题