我想在名为$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的:
答案 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"));