我刚开始学习计算机科学和 Android 开发。我一直在通过一些 helloworld 演示来尝试和学习。
如此疯狂,我尝试使用 onClickListener 重写一个具有两个按钮的按钮的程序。虽然我没有任何编译错误,但我的程序强制关闭我:
01-05 11:20:33.968:E/AndroidRuntime(3257):java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.multbuttontest/com.example.multbuttontest.MultiButtonActivity}:android.view.InflateException:二进制XML 文件第 16 行:膨胀类按钮时出错
我的 XML 文件看起来像这样(对不起,我不擅长格式化):
<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=".MultiButtonActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
和代码:
package com.example.multbuttontest;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
public class MultiButtonActivity extends Activity implements View.OnClickListener{
Button button1, button2;
int touchCount1, touchCount2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_multi_button);
button1 = (Button) findViewById(R.id.button1);
button1.setText( "Touch Button 1!");
button1.setOnClickListener(this);
button2 = (Button) findViewById(R.id.button2);
button2.setText( "Touch Button 2!");
button2.setOnClickListener(this);
}
public void onClick(View v){
switch(v.getId()){
case R.id.button1:
touchCount1++;
button1.setText("Touched b1 " + touchCount1 + " times(s)");
break;
case R.id.button2:
touchCount2++;
button2.setText("Touched b2 " + touchCount2 + " times(s)");
break;
}
}
}
这严格来说只是为了我的学习目的,而且代码确实很糟糕。任何帮助,将不胜感激。