我遇到了Buttons的问题:我在其中创建了一个带有onClickListener的开关,并且在onClick Listener中创建了/ else。 问题是,如果我尝试修改if语句中的按钮状态(我想更改背景颜色),我会收到错误。 如果我在if / else brakets之外写相同的行,它确实有效。我错过了什么?
编辑:资源没问题,它可以在其他活动中使用。问题是,如果我键入risp1。 Eclipse没有给我一个提示框作为usuale并向我显示错误“risp1无法解析为类型”。 该应用程序不会崩溃,它可以工作,但它不会改变我想要的背景颜色(我得到一个透明的黑色)。
import java.util.Random;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class QScalata extends Activity{
SharedPreferences SPavanzamento;
int ndomanda=0,caso;
TextView domanda;
public Button risp1,risp2,risp3,risp4;
int intdomanda,scelta;
String Domanda1[],Domanda2[],Domanda3[];
String RispQ1[] = null;
String RispQ2[]= null;
String RispQ3[]= null;
String RispQ4[]= null;
int esatto1[]={1,1,1};
int esatto2[]={1,1,1};
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.qscalata);
domanda = (TextView) findViewById(R.id.tvDomandaS);
risp1 = (Button) findViewById(R.id.b1S);
risp2 = (Button) findViewById(R.id.b2S);
risp3 = (Button) findViewById(R.id.b3S);
risp4 = (Button) findViewById(R.id.b4S);
Domanda1 = getResources().getStringArray(R.array.QScalata);
RispQ1 = getResources().getStringArray(R.array.RispQ1);
RispQ2 = getResources().getStringArray(R.array.RispQ2);
RispQ3 = getResources().getStringArray(R.array.RispQ3);
RispQ4 = getResources().getStringArray(R.array.RispQ4);
SPavanzamento = getSharedPreferences("avanzamento", 0);
Bundle extras = getIntent().getExtras();
ndomanda = extras.getInt("extra");
switch(ndomanda){
case 1:
Random random= new Random();
caso=random.nextInt(3);
domanda.setText(Domanda1[caso]);
risp1.setText(RispQ1[caso]);
risp2.setText(RispQ2[caso]);
risp3.setText(RispQ3[caso]);
risp4.setText(RispQ4[caso]);
risp1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
scelta=1;
if(scelta==esatto1[caso]){
risp1.setBackgroundColor(65280);
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
risp1.setBackgroundColor(R.color.transparent_bg);
SharedPreferences.Editor editor = SPavanzamento.edit();
editor.putInt("avanzamento", 1);
editor.commit();
Intent returnMenu = new Intent("metal.quiz.SCALATA");
startActivity(returnMenu);
}
}, 1000);
}else{
risp1.setBackgroundResource(R.drawable.red);
}
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
finish();
}
}, 1000);
}
});
break;
答案 0 :(得分:0)
“risp1无法解析为类型”
这仅表示您尚未正确声明risp1
。我假设risp1
是一个Button,所以你想要创建一个类变量:
public class MyActivity extends Activity {
// You forgot "Button" or whatever type risp1 should be
public Button risp1;
...
public void onCreate(...) {
<强>加成强>
我明白了,你已经给了risp1
一个类型,但你无法用以下内容导入:
import android.widget.Button;
(您可以按 Ctrl + Shift + O 自动导入依赖项。)