如何从意图数据中设置文本

时间:2015-07-01 05:45:10

标签: android android-intent

我想在名为$rootScope.$emit的textview中设置文本,其中包含来自其他活动的数据或结果。我正在使用下面的代码。但它不起作用。我的应用程序崩溃了下面的代码。需要帮助。

活动2:必须将数据传输到活动1。

mUserTextView

活动1:从活动2接收数据

private void enterClicked() {

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

        // TODO - Save user provided input from the EditText field
        String editText = mEditText.getText().toString();

        // TODO - Create a new intent and save the input from the EditText field as an extra
//      Intent result= new Intent()
        Intent result = new Intent(editText);


        // TODO - Set Activity's result with result code RESULT_OK
        setResult(Activity.RESULT_OK, result);

        // TODO - Finish the Activity
        finish();

    }

P.S:在java文件中充分定义了mUserTextView。

错误:说 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.getData().toString());// some problem in this line } } }

logcat的:

enter image description here

2 个答案:

答案 0 :(得分:1)

意图"数据"如果在创建Intent时未提供任何数据,则对象不包含任何数据。

所以,

data.getData().toString()

毫无意义。

如果您要从活动A创建一个Intent,那么在活动B中,执行此操作

 Intent intent = new Intent();
 intent.putExtra("KEY", "Put your value here");
 intent.setResult(RESULT_OK, intent);

然后在你的onActivityResult()中执行此操作,

if(requestCode == 1 && resultCode == RESULT_OK) {
    mUserTextView.setText(data.getStringExtra("KEY"));
}

您还可以发送其他数据类型,如int,boolean等。请检查方法,用法类似。

答案 1 :(得分:-2)

使用此:

我假设您正在设置这样的结果:

   Intent in = new Intent();
   in.putExtra("text","This is demo text");
   in.setResult(RESULT_OK,in)

然后在OnActivityResult()方法中;

   mUserTextView.setText(data.getStringExtra("text"));