私のプログラムでは、ユーザーがボタンを押したときに、既にあるものに基づいてテキストを別のものに設定したいのですが、機能していません。ボタンをクリックしても何も起こらず、テキストは同じままです。これは、ボタンが作成される xml レイアウトです。彼らは関数 nextVal を呼び出します
<Button
android:id="@+idk/kbutton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="nextVal"
android:text="@string/zero" />
<Button
android:id="@+idk/kbutton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="nextVal"
android:text="@string/x" />
<Button
android:id="@+idk/kbutton4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="nextVal"
android:text="@string/one" />
呼び出される関数
public void nextVal(View view)
{
Button b = (Button) findViewById(view.getId());
System.out.println(b.getText().toString());
switch(view.getId())
{
case R.idk.kbutton4:
if(b.getText().toString() == "0")
b.setText("1");
else if(b.getText().toString() == "1")
b.setText("x");
else if(b.getText().toString() == "x")
b.setText("0");
break;
case R.idk.kbutton3:
if(b.getText().toString() == "0")
b.setText("1");
if(b.getText().toString() == "1")
b.setText("x");
if(b.getText().toString() == "x")
b.setText("0");
break;
case R.idk.kbutton2:
if(b.getText().toString() == "0")
b.setText("1");
if(b.getText().toString() == "1")
b.setText("x");
if(b.getText().toString() == "x")
b.setText("0");
break;
}
}