【问题标题】:Button not working in android app?按钮在android应用程序中不起作用?
【发布时间】:2014-04-20 13:30:46
【问题描述】:

我正在构建一个具有 3 个功能的应用程序,一个转换器、一个计算器和一个笔记部分。当我单击主页上的转换器按钮时,它会将我带到转换器活动/页面。但是当我点击主页上的计算器按钮时,它不会打开。这是下面的代码。有什么理由吗?提前致谢。

MainActivity

package com.qub.buildersbuddy;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

    Button buttonConverter; 
    Button buttonCalculator;
    Button buttonNotePad;



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

        Button ConvertBtn = (Button) findViewById(R.id.butonConverter);
        ConvertBtn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this,CentInch.class);
                startActivity(intent);

            }
        });

    }

    public void setupConverterButton(){
        buttonConverter = (Button) findViewById(R.id.butonConverter);
        // Button messageButton = (Button) findViewById(R.id.butonConverter);

}

    public void CentToInch(){
        buttonConverter.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                //opening the
                try{
                    Class centClass = Class
                            .forName("com.qub.buildersbuddy.CentInch");
                    Intent myintent = new Intent(MainActivity.this,centClass);
            startActivity(myintent);
                }catch (ClassNotFoundException e){
                    e.printStackTrace();

                }

            }
    });

}

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

    Button CalcBtn = (Button) findViewById(R.id.buttonCalc);
    CalcBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this,Calculator.class);
            startActivity(intent);

        }
    });

}

public void setupCalculatorButton(){
    buttonCalculator = (Button) findViewById(R.id.buttonCalc);
    // Button messageButton = (Button) findViewById(R.id.butonConverter);

}

public void Calculator(){
    buttonCalculator.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            //opening the
            try{
                Class calcClass = Class
                        .forName("com.qub.buildersbuddy.Calculator");
                Intent myintent = new Intent(MainActivity.this,calcClass);
        startActivity(myintent);
            }catch (ClassNotFoundException e){
                e.printStackTrace();

            }

        }
});

}
}

activity_main:

<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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".CentInch" >

    <Button
        android:id="@+id/butonConverter"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="62dp"
        android:text="Converter" />



    <Button
        android:id="@+id/buttonCalc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/butonConverter"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="28dp"
        android:text="Calculator" />

    <Button
        android:id="@+id/buttonNotes"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/buttonCalc"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="31dp"
        android:text="Notes" />

</RelativeLayout>

【问题讨论】:

  • “打不开”因为什么都没有发生?在这种情况下,某些地方可能拼错了
  • 你的有根本性的错误。为什么你有 onCreate1 方法?因此,您的某些方法曾经被调用过。请重新组织您的代码和方法,您只需要一个 onCreate 方法并从内部调用您想要的任何其他方法。由于您有两个以上的按钮,我还建议您实现 onClickListener,这将更容易且更少混乱。

标签: android button android-activity


【解决方案1】:

这是您使用的确切代码吗?你的#onCreate1 方法永远不会被调用。 #onCreate 被调用是因为它覆盖了您扩展的类 (Activity) 中的方法,并且 Activity 中的某些内容在 Activity 首次启动时调用了该方法。将计算器按钮逻辑移到第一个 #onCreate 方法中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 1970-01-01
    • 2016-08-14
    相关资源
    最近更新 更多