setOnClickListener导致APP崩溃

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了setOnClickListener导致APP崩溃相关的知识,希望对你有一定的参考价值。

你好我有这个非常简单的代码我试图通过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是一个按钮

答案

它似乎不是你的情况,但我遇到了同样的问题,它是由这些线引起的

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

之前

setContentView(R.layout.activity_main);
另一答案

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

所以你得到一个NullPointerException

我认为你打算将它改为button

另一答案

什么是“随机”?我认为正确的是:

button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        display.setText("I have changed");
    }
});
另一答案
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" />
另一答案

首先,按错误级别检查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 =(Button)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");
}});

它的工作原理!希望对你有所帮助

以上是关于setOnClickListener导致APP崩溃的主要内容,如果未能解决你的问题,请参考以下文章

片段崩溃与 setOnClickListener

setOnClickListener 使我的应用程序崩溃 [重复]

使用 removeValue() 时 Firebase 应用程序崩溃

谷歌也微软附体:安卓WebView出现严重故障导致大量APP崩溃问题

Android getParcelableExtra传入畸形数据导致APP崩溃Crash复现及原因分析

Android getParcelableExtra传入畸形数据导致APP崩溃Crash复现及原因分析