[英]Android onTouchListener does not work from nested switch statement
我正在為Android開發瑣事游戲。 生成一個隨機數以隨機選擇一個問題。 當我進入嵌套的switch語句時,eclipse從該部分給出錯誤“ v無法解決”: switch(v.getId()) { case R.id.button0: Toast.makeText(BeginGame.this, "success",Toast.LENGTH_SHORT).show();
break; default: Toast.makeText(BeginGame.this,"Fail",Toast.LENGTH_SHORT).show();
break;switch(v.getId()) { case R.id.button0: Toast.makeText(BeginGame.this, "success",Toast.LENGTH_SHORT).show();
break; default: Toast.makeText(BeginGame.this,"Fail",Toast.LENGTH_SHORT).show();
break;
有什么建議么?
`公共類BeginGame擴展了Activity {
public OnTouchListener nextListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Log.d("base", "next");
}
return false;
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
int[] questionArray = {-1,-1,-1,-1,-1,-1,-1};
Random questionNumberGenerated = new Random();
int num;
boolean duplicate = false;
do{
num = questionNumberGenerated.nextInt(7);
for (int i=0; i<questionArray.length; i++){
if (num == questionArray[i]){
duplicate=true;
}
}
}while (duplicate);
if (duplicate=false){
for (int j=0; j<questionArray.length; j++)
questionArray[j]=num;
}
switch (num) {
case 0:
Button button0 = (Button) findViewById(R.id.button0);
button0.setOnTouchListener(nextListener);
Button button1 = (Button) findViewById(R.id.button1);
button1.setOnTouchListener(nextListener);
Button button2 = (Button) findViewById(R.id.button2);
button2.setOnTouchListener(nextListener);
Button button3 = (Button) findViewById(R.id.button3);
button3.setOnTouchListener(nextListener);
TextView text = (TextView) findViewById(R.id.TextView01);
text.setText("press alabama:");
button0.setText("Alabama");
button1.setText("Mississippi");
button2.setText("Philadelphia");
button3.setText("Virginia");
switch(v.getId()) {
case R.id.button0:
Toast.makeText(BeginGame.this, "success", Toast.LENGTH_SHORT).show();
break;
default:
Toast.makeText(BeginGame.this, "Fail", Toast.LENGTH_SHORT).show();
break;
}
case 1:
text.setText("press green");
button0.setText("zsx");
button1.setText("zczcz");
button2.setText("zczc");
button3.setText("green");
case 2:
text.setText("press blue");
button0.setText("www");
button1.setText("aaa");
button2.setText("dddd");
button3.setText("blue");
case 3:
text.setText("press red");
button0.setText("111");
button1.setText("222");
button2.setText("3333");
button3.setText("red");
}
}
}
`
您到底想做什么? 在該方法中沒有v的定義。 如果要在按鈕觸摸上執行某些任務,請將該開關盒移至onTouch方法,如下所示。
public boolean onTouch(View v, MotionEvent event) {
switch(v.getId()) {
case R.id.button0:
Toast.makeText(BeginGame.this, "success", Toast.LENGTH_SHORT).show();
break;
default:
Toast.makeText(BeginGame.this, "Fail", Toast.LENGTH_SHORT).show();
break;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.