按钮单击不会从活动中调用所需的方法

时间:2013-10-23 12:05:21

标签: android

我是Android的新手,并遵循http://developer.android.com/training/basics/firstapp/index.html中的“构建您的第一个应用程序”教程 我的问题是当我点击发送按钮时没有任何反应。

Main.Manifest代码:

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="sendMessage"
    android:text="@string/button_send" />

Main.java代码

public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    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);
    }

程序没有错误,但在点击事件

上什么都不做

3 个答案:

答案 0 :(得分:5)

你错过了

  startActivity(intent);

同样在onCreate中初始化editText会更好

EditText editText;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    editText = (EditText) findViewById(R.id.edit_message);
}

在sendMesage中

public void sendMessage(View view) {
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    intent.putExtra(EXTRA_MESSAGE, editText.getText().toString());
    startActivity(intent);
}

答案 1 :(得分:2)

您没有开始活动。创建意图时,需要调用startActivity;方法并将意图传递给它。

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); //need this
}

阅读this

答案 2 :(得分:1)

在最后一行的sendMessage()方法中添加此内容。 startActivity(intent)

您还没有开始活动..