我如何比较id的值与java

时间:2014-12-03 18:17:17

标签: java android xml

我有一个带有问题和两个按钮的简单xml。当按下其中一个按钮时,我将比较按下的按钮的id是否等于" Blanco"或者"黑人"。 XML代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="@string/pregunta" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/Blanco" 
            android:onClick="respuesta"/>

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/Negro" 
            android:onClick="respuesta"/>

    </LinearLayout>

</LinearLayout>

这是de java代码:

public class MainActivity extends ActionBarActivity {

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

    public void respuesta(){
        //The doubt.
        //Here the if/else to compare ID with the button text
    }
}

3 个答案:

答案 0 :(得分:1)

将onClickListener实现到您的Activity中。

public class MainActivity extends ActionBarActivity implements OnClickListener

在类中声明Button变量

Button btblanco, btnegro;  

在onCreate上实现clickListener事件

btblanco = (Button) findViewById(R.id.button1);
btnegro = (Button) findViewById(R.id.button2);

btblanco.setOnClickListener(this);

btnegro.setOnClickListener(this);

并将其放在onClickListener方法中。

@Override
    public void onClick(View v) {
    switch(v.getId())
    {

        case R.id.button1:

                    Toast.makeText(getApplicationContext(), "Blanco", Toast.LENGTH_SHORT).show();
        break;

        case R.id.button2:

                    Toast.makeText(getApplicationContext(), "Negro", Toast.LENGTH_SHORT).show();
        break;


    }}

答案 1 :(得分:1)

不要那样做。为每个onClickListener创建一个Button,以便确切知道正在按下哪个public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button1 = (Button)findViewById(R.id.button1); Button button2 = (Button)findViewById(R.id.button2); button1.setOnClickListener(new View.OnClickListener{ public void onClick(View v) { // call code here, knowing that button1 was pressed } }); button2.setOnClickListener(new View.OnClickListener{ public void onClick(View v) { // call code here, knowing that button2 was pressed } }); } } 。例如:

{{1}}

答案 2 :(得分:0)

如果您只想知道单击了哪个按钮,则将onclicklistener添加到按钮对象。谷歌为它做了一点,你找到的样本将告诉你如何使用开关案例结构来根据点击的按钮进行动作。