I just started learning Computer Science and Android development. I've been going through some helloworld demos to try and learn.
So going wild, I tried to rewrite a program that has one button for two buttons using the onClickListener. While I don't have any compiling errors, my program is force closing on me:
01-05 11:20:33.968: E/AndroidRuntime(3257): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.multbuttontest/com.example.multbuttontest.MultiButtonActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class button
My XML file looks like so (Sorry I suck at formatting):
<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" />
and code:
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;
}
}
}
This is strictly just for my learning purposes, and the code does suck. Any help would be appreciated.
It's not button
, it's Button
. The XML tag points to the java class in the framework. And Java is case sensitive.
<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" />