Button2正在执行button1应该做的事情

时间:2013-12-19 23:03:21

标签: java android button

我是Android编程的新手,在我的布局中移动按钮后,我的应用程序出现了一些奇怪的东西。 所以有一个按钮(开始),点击后,启动另一个活动。这是代码。

public class MainActivity extends Activity {

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

        Button startbutton = (Button) findViewById(R.id.button1);

        startbutton.setOnClickListener(new View.OnClickListener() {     //STARTBUTTON
            @Override
            public void onClick(View arg0) {         //LO QUE HACE EL START BUTTON
                Intent intent = new Intent(MainActivity.this, JugarActivity.class);
                startActivity(intent);
            }
        });
    }
}

我的问题是,当我测试我的应用程序时,当我点击开始按钮时没有任何反应,但是当我点击我的布局中的另一个按钮时(按钮4),它会将我发送给第二个活动。 如果需要,这里是我的activity_main.xml。

<LinearLayout 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:gravity="center_horizontal"
android:orientation="vertical" >

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="150dp"
    android:minWidth="200dp"
    android:text="@string/Start"
    android:textSize="30sp" />

<Button
    android:id="@+id/button4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:maxWidth="200dp"
    android:minHeight="50dp"
    android:minWidth="200dp"
    android:text="@string/Jugarporcontinente"
    android:textSize="30sp" />

<Button
    android:id="@+id/button5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:minWidth="200dp"
    android:text="@string/Aprende"
    android:textSize="30sp" />

<Button
    android:id="@+id/button6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:minWidth="200dp"
    android:text="@string/Puntajes"
    android:textSize="30sp" />

<Button
    android:id="@+id/button7"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:minWidth="200dp"
    android:text="@string/Opciones"
    android:textSize="30sp" />

</LinearLayout>

我不明白当点击一个甚至没有代码的按钮时,如何从另一个按钮启动代码。欢迎任何帮助。感谢。

1 个答案:

答案 0 :(得分:1)

根据问题评论,以下是发生的事情:

编译资源时,资源XML文件将编译为二进制XML格式,资源标识符将在R.java中生成。生成的标识符指向资源二进制文件中的特定项。标识符只是序列中的整数,其值按照它们在资源XML文件中声明的顺序给出。

大部分时间这都可行。修改源XML文件时,更改将编译为二进制资源和R类。

但是,有时构建依赖性系统无法正常工作。例如,R中的标识符被更新,但并非所有二进制资源都反映了已更改的标识符。当您尝试在代码中通过id引用元素时,它实际上返回在二进制资源中使用该id指定的其他元素。

在那种情况下,你是“幸运的” - 层次结构中的那个id有一个视图(没有返回null,没有NullPointerException),它碰巧是Button(没有{{1 }})。

清理项目会删除已编译的资源二进制文件并生成ClassCastException,因此在重新编译时,它们会再次同步。