У меня есть изображение, которое я использую в качестве кнопки, я настроил метод 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 проверяет изменения, пожалуйста! –
После одного полного цикла ваш коммутатор больше не будет выполняться, так как вы устанавливаете значение textnumber в 4 в вашем последнем случае, если в changeTextColor(). Это может быть проблема? – Levon