Android setOnClickListener导致应用程序崩溃
你好,我有一个非常简单的代码,我正试图通过Android Studio运行Android setOnClickListener导致应用程序崩溃,android,crash,Android,Crash,你好,我有一个非常简单的代码,我正试图通过Android Studio运行 public class MainActivity extends ActionBarActivity { Button random; TextView display; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.
public class MainActivity extends ActionBarActivity {
Button random;
TextView display;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
random = (Button) findViewById(R.id.button);
display = (TextView) findViewById(R.id.TextView);
random.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
display.setText("I have changed");
}
});
我并没有添加太多,但每当我使用setOnClickListener时,不管它里面有什么,都会使应用程序崩溃。我找不到解决这个问题的办法
多谢各位
//编辑:对不起。我添加了一个错误的代码,
random
是一个按钮您正在对random
对象设置setOnClickListener
方法,该对象的代码当前为Null
因此,您将得到一个NullPointerException
我想你是想把它改成按钮。什么是“随机”?我认为正确的做法是:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
display.setText("I have changed");
}
});
在您要设置的代码中,单击按钮上的listener。请确保您获得了正确的id和正确的对象来设置侦听器。要在其上设置clcik侦听器的按钮的id应与在活动中定义的id相同
活跃
按钮按钮=(按钮)findViewById(R.id.button1);
在XML中
首先,按错误级别检查logcat
其次,random未初始化
你需要
1.activity_main.xml中的创建按钮
For example,
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<Button
android:id="@+id/myCoolButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</RelativeLayout>
而且它有效!希望能对您有所帮助这似乎不是您的情况,但我也遇到了同样的问题,这是由这些线路引起的
mButton = findViewById(R.id.button);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// ...
}
});
以前
setContentView(R.layout.activity_main);
对不起,我添加了错误的代码。它已经是一个“按钮”,但仍然不工作。好的,所以我看到的下一个问题是显示对象的id:R.id.TextView。您确定这是您在xml文件activity_main中提供的id吗?请尝试将其切换为显示。是,这是textview的ID。我把它改成了“电视”,这样就不那么让人困惑了,但这似乎没什么帮助。你能把你的日志贴出来吗?还有你的xml布局文件?这和我给出的答案不一样吗?你能发布日志吗?我也有同样的问题,你解决了吗?如果你仍然遇到错误,请发布错误日志,这样我们可以帮助你找到正确的解决方案
mButton = findViewById(R.id.button);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// ...
}
});
setContentView(R.layout.activity_main);