1

所以我一直在阅读创建 Android 应用程序的初学者指南(http://developer.android.com/training/basics/firstapp/index.html)。除了我不断出错的一步之外,它运行良好。

MainActivity.java 对我不起作用。我在 3 个不同的地方遇到各种错误。

这就是我的代码的样子:

package com.fredde.myfirstapp;


public class MainActivity extends Activity {
    public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";

    import android.app.Activity;enter code here
    import android.content.Intent;
    import android.view.View;
    import android.widget.EditText;
    import android.view.View;



    /** Called when the user clicks the Send button */
    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);
    }

所以我希望通过本指南的人可以帮助我,或者只是一个尽管没有完成这个特定项目但可以看到问题的人。提前致谢!

放轻松,我是一个完整的初学者。

4

5 回答 5

1

import 语句应该在类之外。

package com.fredde.myfirstapp;

import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.EditText;
import android.view.View;

public class MainActivity extends Activity {
    public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";

/** Called when the user clicks the Send button */
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);
}
于 2013-10-19T21:43:03.343 回答
0

您需要调用 onCreate 和内部的 setCustomView 来为该活动添加布局。

@override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setCustomView(R.layout.yourLayoutXMLfile);
}

如果你不写这个应用程序不知道在哪里可以找到像 EditText 等对象。

于 2013-10-19T22:27:19.753 回答
0

对于您的主要活动:

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);

必须在 res->values-> 下的 strings.xml 中定义以下内容

<resources>
...
<string name="title_activity_display_message">My Message</string>
</resources>

对于 R 无法解决:确保已将 edit_message 定义为 xml 文件中编辑视图的 id,如下所示:

<EditText android:id="@+id/edit_message"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="@string/edit_message" />

这应该可以解决您的问题

于 2013-10-19T23:53:26.873 回答
0

好的,所以在复制 G V 的代码后,只剩下一个错误: 在这一行 ditText editText = (EditText) findViewById(R.id.edit_message); 它说“R无法解析为变量”

清理项目,然后重新构建它。

于 2013-10-19T22:09:39.357 回答
0

我刚刚编译了以下内容,没有收到任何错误。这就是我在 onCreate 方法下所做的。

setCustomView(R.layout.file.xml);

为此,在 res->layout->file.xml 下创建一个名为 file.xml 的文件。我在 xml 中为编辑视图分配了一个 ID,例如:`

 <EditText 
    android:id="@+id/edit_mssg"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/msg"/>

我确定您有一个名为 DisplayMesageActivity.java 的 java 文件

 package com.fredde.myfirstapp;

import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.widget.EditText;
import android.view.View;

public class MainActivity extends Activity {

public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
@override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setCustomView(R.layout.file.xml);
}
/** Called when the user clicks the Send button */
public void sendMessage(View view) {
    Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_mssg);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
于 2013-10-19T23:03:54.883 回答