对带有View示例项目的Android Room中的某些代码感到困惑

时间:2019-04-30 22:39:56

标签: android android-room

我正在用视图学习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

2 个答案:

答案 0 :(得分:0)

这只是一个简单的键/值对。像HashMapDictionary

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)访问数据。

优良作法是将意图的键定义为常量,这样在其他类中引用它时,您不太可能出错。