在一些教程之后我遇到了一个奇怪的错误...当我在我的设备上启动它时它会立即崩溃...为什么? 此外,我尝试了3种不同的方式来使用onClick ...这三个之间的区别是什么? (其他2个被注释掉)
<Button
android:id="@+id/button_send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button1"
android:onClick="sendMessage" />
package com.example.a2;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity
{
String CopyText;
String editText1;
String editText2;
final Button button1 = new Button(this);
public void sendMessage(View view)
{
button1.setText(editText1);
}
/*
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v)
{
}
});
/*
/*
OnClickListener buttonListener = new View.OnClickListener()
{
@Override
public void onClick(View v)
{
button1.setText(editText1);
}
};
*/
@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;
}
}
答案 0 :(得分:1)
试试这个..
执行初始化,然后点击onCreate
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button_send);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v)
{
Toast.makeText(getBaseContext(), "Cilcked", Toast.LENGTH_SHORT).show();
}
});
}
编辑:
当活动开始时, onCreate()会被调用。它只在活动的生命周期中被调用一次。
如果您将应用程序的状态保存在一个包中(通常是onSaveInstanceState中的非持久性动态数据),如果需要重新创建活动(例如,方向更改),则可以将其传递回onCreate,这样您就可以不会丢失这些先前的信息。如果没有提供数据,savedInstanceState为空。
答案 1 :(得分:1)
首先: 解决方案,使按钮没有任何参考布局,并尝试更改它的测试
第二个: 布局中的按钮ID是button_send,您尝试使用button1 访问它我认为第三个解决方案与第二个问题相关