Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 只包含三个按钮的简单应用程序:加号按钮、减号按钮和重置按钮_Android_Button_Layout - Fatal编程技术网

Android 只包含三个按钮的简单应用程序:加号按钮、减号按钮和重置按钮

Android 只包含三个按钮的简单应用程序:加号按钮、减号按钮和重置按钮,android,button,layout,Android,Button,Layout,我正在创建一个简单的Android应用程序,它只包含三个按钮:加号按钮、减号按钮和重置按钮。 但不幸的是,当我按下三个按钮中的一个时,我的应用程序崩溃了 以下是我的主要活动代码: import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.wi

我正在创建一个简单的Android应用程序,它只包含三个按钮:加号按钮、减号按钮和重置按钮。 但不幸的是,当我按下三个按钮中的一个时,我的应用程序崩溃了

以下是我的主要活动代码:

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;

    public class Main extends Activity implements OnClickListener{

        Button btnAdd, btnMinus,  btnReset;
        TextView tvCounter;
        int count = 0;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            btnAdd = (Button)findViewById(R.id.addButton);
            btnMinus = (Button)findViewById(R.id.minusButton);
            btnReset = (Button)findViewById(R.id.resetButton);

            btnAdd.setOnClickListener(this);
            btnMinus.setOnClickListener(this);
            btnReset.setOnClickListener(this);

            tvCounter = (TextView)findViewById(R.id.counterTextView);
        }

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            switch (v.getId()) {
            case R.id.addButton:{
                count++;
                tvCounter.setText(count);   
            }

                break;
            case R.id.minusButton:{
                count--;
                tvCounter.setText(count);
            }
                break;
            case R.id.resetButton:{
                count = 0;
                tvCounter.setText(count);       
            }
                break;
            default:

                break;
            }

        }


    }
这是我的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/tasbih"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/counterTextView"
        android:layout_width="fill_parent"
        android:layout_height="70dp"
        android:layout_alignParentTop="true"
        android:textSize="50sp"
        android:textColor="#000000"
        android:layout_marginTop="30dp"
        android:text="0"
        android:background="#FFFFFF"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <Button
        android:id="@+id/addButton"
        style="@style/buttonStyle"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="+" />

    <Button
        android:id="@+id/resetButton"
        style="@style/buttonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/addButton"
        android:layout_toLeftOf="@+id/addButton"
        android:text="Reset" />

    <Button
        android:id="@+id/minusButton"
        style="@style/buttonStyle"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_above="@+id/addButton"
        android:layout_toRightOf="@+id/addButton"
        android:text="-" />

</RelativeLayout>

您是否有意将
tvCounter
的文本设置为整数,
count
?您应该将文本设置为字符串值:
tvCounter.setText(string.valueOf(count))除非您打算通过字符串资源ID设置文本

setText
函数可以接受引用字符串资源的int值(请参阅)。您提供的给定
int
可能找不到字符串资源(
count

关于switch-case语句的另一个注意事项是:当使用build tools revision14+时,不建议(不允许)在case上使用非常量的switch-case。有关更多详细信息,请参阅本页:

警告:在库项目中将ID生成为非最终ID意味着库代码不能将这些ID视为常量。例如,这意味着您不能在switch语句中使用res id

在您提供的代码中,您正在检查按钮ID(
R.ID.minusButton
等)。您应该将开关/机箱更改为类似以下内容:

if(v.getId() == R.id.addButton) {
    count++;
    tvCounter.setText(String.valueOf(count));
}
else if(v.getId() == R.id.minusButton) {
    count--;
    tvCounter.setText(String.valueOf(count));
}
else if(v.getId() == R.id.resetButton) {
    count = 0;
    tvCounter.setText(String.valueOf(count));
}

在我看来,您的视图中没有找到ID。也许你们可以做些类似的事情来代替那个份案例陈述

if (butnAdd == v) {
} else if (btnMinus == v) {
} else if (btnReset == v) {
} else {
}

用以下代码替换整个onClick方法:

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.addButton:
            count++;
            break;
        case R.id.minusButton:
            count--;
            break;
        case R.id.resetButton:
            count = 0;
            break;
    }
    tvCounter.setText(String.valueOf(count));
}

类型转换错误,您正在将整型数据设置为文本类型

打开logcat并将错误日志粘贴到此处,这可能是告诉我们哪个按钮不起作用的最好方法。现在我想在我的应用程序中添加一个功能,即在10到15分钟的间隔后,全天重复一些声音@宾尼你知道这件事吗?
@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.addButton:
            count++;
            break;
        case R.id.minusButton:
            count--;
            break;
        case R.id.resetButton:
            count = 0;
            break;
    }
    tvCounter.setText(String.valueOf(count));
}