【问题标题】:Getting a crash every time i press a button"Android Studio"每次按下按钮“Android Studio”时都会崩溃
【发布时间】:2016-04-04 01:07:45
【问题描述】:

我正在尝试制作一个移动应用程序,但是当我尝试按下按钮时,我会崩溃。该按钮应该将我带到一个新的活动页面,我已经以正确的方式将其他页面与按钮连接起来。我只是想知道这段代码是否正确:

    public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);




    }

    public void onButtonClick(View v)
    {
        Button a1= (Button) findViewById(R.id.button);
        a1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, SecondPage.class);
                startActivity(intent);
            }
        });

    }
    public void onButtonClick1(View c)
    {
        Button a1= (Button) findViewById(R.id.button2);
        a1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(MainActivity.this, ThirdPage.class);
                startActivity(intent);
            }
        });

    }
    public void onButtonClick2(View d)
    {
        Button a1= (Button) findViewById(R.id.button3);
        a1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(MainActivity.this, FourthPage.class);
                startActivity(intent);
            }
        });

    }
    public void onButtonClick3(View f)
    {
        Button a1= (Button) findViewById(R.id.button4);
        a1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(MainActivity.this, FifthPage.class);
                startActivity(intent);
            }
        });

    }

}

我刚刚从 youtube 上的一些视频中学习了 java,所以我不确定我的活动功能是否良好。谢谢

【问题讨论】:

  • 请发布logcat。
  • 请检查是否在您的清单文件中声明了新的(调用的)活动。
  • 在 onCreate() 方法中定义 finViewById。
  • 请粘贴您的logcat错误行
  • 那么,单击一个按钮会重置另一个按钮的单击侦听器吗?这是一个奇怪的应用设置。

标签: java android android-intent android-activity mobile-application


【解决方案1】:

之后可能有几个原因

1) 确保您在 Manifest 文件中定义了活动

2) 检查 xml 文件中的android:onClick=""..

尝试在onCreate() 方法中绑定按钮。

您可以简单地将其用于 onClick

a1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this, SecondPage.class);
            startActivity(intent);
        }
    });

【讨论】:

  • 非常感谢,我忘记在清单文件中定义活动了。
【解决方案2】:

在您的 activity_main.xml 文件中删除 onClick 属性,并将此代码复制并粘贴到您的 MainActivity.java 文件中

 public class MainActivity extends AppCompatActivity {

    Button b1,b2,b3,b4;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


       b1= (Button) findViewById(R.id.button);
       b2= (Button) findViewById(R.id.button2);
       b3= (Button) findViewById(R.id.button3);
       b4= (Button) findViewById(R.id.button4);

        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, SecondPage.class);
                startActivity(intent);
            }
        });


        b2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(MainActivity.this, ThirdPage.class);
                startActivity(intent);
            }
        });


        b3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(MainActivity.this, FourthPage.class);
                startActivity(intent);
            }
        });


        b4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent=new Intent(MainActivity.this, FifthPage.class);
                startActivity(intent);
            }
        });

    }

}

【讨论】:

    【解决方案3】:

    如果您在布局 XML 中使用 onclick 属性,则无需设置 onclick 侦听器。如果你没有使用 onclick 那么你需要设置 click listener。在您的情况下,我认为使用在布局 XML 中使用 onclick 属性,并且还尝试在使用 java 代码中设置 click listener 。所以你需要在布局 XML 中使用 onclick 属性或在 java 代码中使用 setOnCliickListener()

    【讨论】:

    • 明白。谢谢,你给我解释得很好^^。
    猜你喜欢
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    相关资源
    最近更新 更多