Android 如何从意图数据设置文本
我想在名为Android 如何从意图数据设置文本,android,android-intent,Android,Android Intent,我想在名为mUserTextView的文本视图中设置文本,其中包含来自其他活动的数据或结果。我正在使用下面的代码。但它不起作用。我的应用程序崩溃,代码如下。需要帮助 活动2:必须将数据传输到活动1 private void enterClicked() { Log.i(TAG,"Entered enterClicked()"); // TODO - Save user provided input from the EditText field
mUserTextView
的文本视图中设置文本,其中包含来自其他活动的数据或结果。我正在使用下面的代码。但它不起作用。我的应用程序崩溃,代码如下。需要帮助
活动2:必须将数据传输到活动1
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();
}
活动1:从活动2接收数据
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
}
}
}
注意:mUserTextView在java文件中有充分的定义
错误:显示NullPointerException
日志:
使用以下方法:
我假设您是这样设置结果的:
Intent in = new Intent();
in.putExtra("text","This is demo text");
in.setResult(RESULT_OK,in)
然后在OnActivityResult()方法中
如果在创建意图时未提供任何数据,则意图“数据”对象不包含任何数据
所以
毫无意义
如果您是从活动A创建意图,那么在活动B中,执行此操作
Intent intent = new Intent();
intent.putExtra("KEY", "Put your value here");
intent.setResult(RESULT_OK, intent);
然后在onActivityResult()中执行此操作
您也可以发送其他数据类型,如int、boolean等。请检查方法,用法类似。您面临什么错误?发布日志。从intent获取数据的正确方法是
data.getStringExtra(“key”)代码>。这将返回一个字符串。将此字符串存储在变量中,然后将该变量放入textview的setText()
方法中。像这样setText(data.getStringExtra(“key”))
。“键”是在使用data.putExtra(“键”,stringData)将数据设置为上一个活动的目的时设置的字符串代码>我对问题做了一些编辑。你能再看一次吗。谢谢。setResult()方法中传递的参数错误。请把它们换掉,它成功了。谢谢如果你能给我解释一下这个“关键”的东西就好了。这个“键”是内置变量吗。为什么我们还没有定义这个“键”,但它却起了作用。它是某种内置的全局变量吗?是的,我当然会。如果这个答案对你有帮助,请投上一票,问一个新问题,并给我链接。我会详细回答。谢谢。请投票表决我的问题。因为我已经编辑并提供了所有详细信息。:)刚才在网上冲浪,了解了地图。所以我有点了解我们用“钥匙”在这里做什么:)谢谢你的帮助。(非常感谢。)
data.getData().toString()
Intent intent = new Intent();
intent.putExtra("KEY", "Put your value here");
intent.setResult(RESULT_OK, intent);
if(requestCode == 1 && resultCode == RESULT_OK) {
mUserTextView.setText(data.getStringExtra("KEY"));
}