我正在用视图学习Android房间。我浏览了一些示例项目和教程,在此示例中有一件事让我挂断了电话,但我不理解。这是代码(在代码下方,我指出了我很困惑的几行内容):
public class NewWordActivity extends AppCompatActivity {
public static final String EXTRA_REPLY = "com.example.android.wordlistsql.REPLY";
private EditText mEditWordView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new_word);
mEditWordView = findViewById(R.id.edit_word);
final Button button = findViewById(R.id.button_save);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent replyIntent = new Intent();
if (TextUtils.isEmpty(mEditWordView.getText())) {
setResult(RESULT_CANCELED, replyIntent);
} else {
String word = mEditWordView.getText().toString();
replyIntent.putExtra(EXTRA_REPLY, word);
setResult(RESULT_OK, replyIntent);
}
finish();
}
});
}
}
让我感到困惑的部分是第二行EXTRA_REPLY,然后您可以看到它用于底部的reply.Intent.putExtra。 EXTRA_REPLY到底指的是什么?您将如何在自己的项目中找到它?
如果您需要更多背景信息,请参见以下示例:https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#12
答案 0 :(得分:0)
这只是一个简单的键/值对。像HashMap
或Dictionary
。
replyIntent.putExtra(EXTRA_REPLY, word);
这会将EXTRA_REPLY
中的word
设置为Intent
,因此您可以在Activity
处理结果的任何位置读取它。
例如,当您启动新的Bundle
时,也可以使用Activity
进行操作。
密钥com.example.android.wordlistsql.REPLY
并不重要,只需确保每个人都使用相同的密钥即可。
答案 1 :(得分:0)
意图时,可以键值形式向其中添加额外的数据。在此示例中,他们使用字符串常量EXTRA_REPLY
作为键,并使用变量word
作为值。
意图的接收者将使用intent.getStringExtra(NewWordActivity.EXTRA_REPLY)
访问数据。
优良作法是将意图的键定义为常量,这样在其他类中引用它时,您不太可能出错。