setOnClickListener导致APP崩溃

时间:2013-12-12 11:25:26

标签: android crash

您好我有这个非常简单的代码我试图通过Android Studio运行

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是一个按钮

5 个答案:

答案 0 :(得分:1)

它似乎不是你的情况,但我有同样的问题,这是由于有这些行

mButton = findViewById(R.id.button);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
    // ...
}
});

setContentView(R.layout.activity_main);

答案 1 :(得分:0)

您正在setOnClickListener对象上设置random方法,该代码目前代码为Null

所以你得到了NullPointerException

我认为您打算将其改为button

答案 2 :(得分:0)

什么是“随机”?我认为应该是:

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        display.setText("I have changed");
    }
});

答案 3 :(得分:0)

In your code  you are setting click listener on a button. Please make sure you get right id and right object to set listener. The button you want to set clcik listener on should have same id to the id you defined in you activity 

In Activity
Button button =(Button)findViewById(R.id.button1);

In XML
 <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

答案 4 :(得分:0)

首先 ,按错误级别检查logcat 其次 ,随机未初始化!!

你需要

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>

2.在代码中输入该按钮

按钮myCoolButton =(按钮)findViewById(R.id.myCoolButton);

3.Attach listener to button

myCoolButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
    display.setText("I have changed");
}});

它有效!希望能帮到你