私はボタンとして使用する画像ビューを持っています。私はonclickメソッドを設定し、その中にswitchステートメントを宣言しました。ボタンをクリックするたびに必要です。 、私はケース0、ケース1、ケース2、ケース3を設定し、私はそれぞれのケースに対して必要なメソッドを置くが、ボタンをクリックするたびにケースは混在するように見え、ケース0のみを呼び出すケース3、何が間違っているのかわからない、私は古いプロジェクトでこのコードを使用し、それはうまくいったが、今何がうまくいかないのか分からない。Androidスイッチのステートメントが正しく機能していない
は、ここに私のコードです:
// i tried to use static, final int but still it's the same problem.
private int textnumber = 0;
button_text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
switch (textnumber) {
case 0:
//changeTextColor(int) method, for each number it changes the text's color.
changeTextColor(1);
Toast.makeText(getApplicationContext(),"text color is 1",Toast.LENGTH_SHORT).show();
break;
case 1:
changeTextColor(2);
Toast.makeText(getApplicationContext(),"text color is 2",Toast.LENGTH_SHORT).show();
break;
case 2:
changeTextColor(3);
Toast.makeText(getApplicationContext(),"text color is 3",Toast.LENGTH_SHORT).show();
break;
case 3:
changeTextColor(4);
Toast.makeText(getApplicationContext(),"text color is 4",Toast.LENGTH_SHORT).show();
break;
}
}
});
private void changeTextColor(int id){
//mRenderer is a class that uses GLES 2.0 (glsurfaceview etc...);
//mObjectsData is a class that i use to store different datas
if(id == 1){
textnumber = 1;
mObjectsData.mTextColor = "yellow";
mRenderer.requestRender();
}
else if(id == 2){
textnumber = 2;
mObjectsData.mTextColor = "green";
mRenderer.requestRender();
}
else if(id == 3){
textnumber = 3;
mObjectsData.mTextColor = "blue";
mRenderer.requestRender();
}
else if(id == 4){
textnumber = 4;
mObjectsData.mTextColor = "red";
mRenderer.requestRender();
}
}
does changeTextColor change textnumber variable?そのコードも表示できますか? –
@MattWolfeチェックをしてください! –
changeTextColor()内にある場合は、最後のelseでtextnumberを4に設定するので、1つのフルサイクル後、スイッチは実行されなくなります。それがここで問題になるのでしょうか? – Levon