【问题标题】:Android Tutorial: edit_message cannot be resolved or is not a fieldAndroid教程:edit_message无法解析或不是字段
【发布时间】:2014-05-05 02:40:15
【问题描述】:

我正在学习 Android 教程并学习如何制作应用程序,虽然缓慢但肯定。

我的 Mainactvitiy 中有这个:

public final static String EXTRA_MESSAGE = "com.mfr.firstapp.MESSAGE";

public void sendMessage(View view) {
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
}

这在我的 Fragment_main.xml 中

<EditText 
android:id="@+id/edit_messsage"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/edit_message" 
android:layout_weight="1">
</EditText>

但我在这一行遇到错误

EditText editText = (EditText) findViewById(R.id.edit_message);

告诉我“edit_message 无法解析或不是字段” 为什么会这样?

问候

马特

【问题讨论】:

    标签: java android


    【解决方案1】:

    “edit_message”在 Fragment 的布局中,所以这段代码找不到它:

    EditText editText = (EditText) findViewById(R.id.edit_message);
    

    因为它会查看已在活动中设置为 contentView 的布局。

    您可能正在学习一个较旧的教程,该教程是在 adt 在创建新项目后开始自动生成片段之前完成的。 (这让很多初学者感到困惑)

    【讨论】:

    • 好的,非常感谢,我会尝试寻找另一个教程。对好的、可靠的和最新的教程有什么建议吗?
    • 本教程不一定不好,因为这已经改变了几个月左右。此外,生成的代码无论如何都非常愚蠢。我建议先学习如何做一个没有片段的 UI,然后再学习片段。这里解释了如何摆脱生成的片段:stackoverflow.com/a/22482259/2399024
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 2011-06-11
    • 2014-03-27
    相关资源
    最近更新 更多