0

重複の可能性:
次のボタンと前のボタンが機能しない

レイアウトに5つのボタンがあり、次のボタンで、配列リストからのボタンのテキストを変更したいと思います。どうすればこれを実装できますか?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:gravity="center_horizontal"
android:orientation="vertical" >

    <LinearLayout style="@style/verticallayout" >

        <Button
            android:id="@+id/b1"
            style="@style/buttons"
            android:layout_weight=".16"
            android:text="1" />
    </LinearLayout>

    <LinearLayout style="@style/verticallayout" >

        <Button
            android:id="@+id/b2"
            style="@style/buttons"
            android:layout_weight=".16"
            android:text="2 />
    </LinearLayout>

    <LinearLayout style="@style/verticallayout" >

        <Button
            android:id="@+id/b3"
            style="@style/buttons"
            android:layout_weight=".16"
            android:text="3" />
    </LinearLayout>

    <LinearLayout style="@style/verticallayout" >

        <Button
            android:id="@+id/b4"
            style="@style/buttons"
            android:layout_weight=".16"
            android:text="4" />
    </LinearLayout>

    <LinearLayout style="@style/verticallayout" >

        <Button
            android:id="@+id/b5"
            style="@style/buttons"
            android:layout_weight=".16"
            android:text="5" />
    </LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/left"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="0.5"
        android:enabled="false"
        android:text="Prev" />

    <Button
        android:id="@+id/right"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="0.5"
        android:text="Next" />
</LinearLayout>

私のJavaクラス::ここでcountは静的変数です。

public void onClick(View arg0) {
    String a=null;
    switch(arg0.getId()){
    case R.id.left:


        if( count==0)
            prev.setEnabled(false);
        else{
             count--;

        }
        break;
    case R.id.right:
        if( count>5)
            next.setEnabled(false);
        else{
             count++;

        }
        break;
    case R.id.b1:

            a=(( count*0)+0)+"";
            bb1.setText(a);
        }
        break;
    case R.id.b2:

            a= (( count*0)+1)+"";
            bb2.setText(a);
        }
        break;
    case R.id.b3:

            a= (( count*0)+2)+"";
            bb3.setText(a);
        }
        break;
    case R.id.b4:

            a= ((count*0)+3)+"";
            bb4.setText(a);
        }
        break;
    case R.id.b5:

            a= ((count*0)+4)+"";
            bb5.setText(a);
        }
        break;

    }
}

ボタンのテキストをcountの値で変更したい。しかし、値は変化していません。私の疑問は、次と前のクリックのたびに活動を更新する必要があるということです

4

3 に答える 3

0

問題は、自分自身のクリック イベントでボタンのテキストを変更しようとしていることです。

そのため、次へまたは前へをクリックしても、ボタン内のテキストは変更されません (カウントの変更のみ)。それらをクリックしたときにのみ変更されます(実際には最新のカウント値で更新されます)(b1、2、3、4、5)。

したがって、必要なものを取得するには、次のようにします。

public void onClick(View arg0) {
String a=null;
switch(arg0.getId()){
case R.id.left:


    if( count==0)
        prev.setEnabled(false);
    else{
         count--;
         //You want to change the text(count) of button1,2,3,4,5 when you click prev.
         //So, do that here

bb1.setText("" + count);
bb2.setText("" + count);
bb3.setText("" + count);
bb4.setText("" + count);
bb5.setText("" + count);

         //Similarly on next clicked

    break;
case R.id.right:
    if( count>5)
        next.setEnabled(false);
    else{
         count++;
bb1.setText("" + count);
bb2.setText("" + count);
bb3.setText("" + count);
bb4.setText("" + count);
bb5.setText("" + count);

    break;
case R.id.b1:
        //here don't change any text, just check the text value and call the respective answer
       if(bb1.getText == "5"){
          //call answer5 etc..,
          }

          //do the same with other buttons b2,3,4,5
    break;
case R.id.b2:

        a= (( count*0)+1)+"";
        bb2.setText(a);

    break;
case R.id.b3:

        a= (( count*0)+2)+"";
        bb3.setText(a);

    break;
case R.id.b4:

        a= ((count*0)+3)+"";
        bb4.setText(a);

    break;
case R.id.b5:

        a= ((count*0)+4)+"";
        bb5.setText(a);

    break;

}

}

次のボタンと前のボタンのクリック時にボタンのテキストを変更する

于 2013-01-24T10:59:28.680 に答える
0

このコードがありませんか?:

Button Button1= (button)findviewbyid(R.id.right);
Button1.setonclicklistener(this);
于 2013-01-24T10:28:57.403 に答える
0

あなたの onClick() メソッドでは、ロジックが正しくありません..必要なのは2つのケースだけです..

次または前のボタンを押すと、残りの 5 つのボタンのテキストを変更できます。

それは解決しました....

于 2013-01-24T10:36:32.897 に答える