Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在测验中隐藏两个错误答案?_Java_Android_Android Sqlite - Fatal编程技术网

Java 如何在测验中隐藏两个错误答案?

Java 如何在测验中隐藏两个错误答案?,java,android,android-sqlite,Java,Android,Android Sqlite,比如“谁想成为百万富翁”。当用户按50/50帮助按钮时,我希望隐藏两个错误的答案,因此将两个按钮的文本设置为“”,而不是“答案”按钮。但我不知道怎么做。我正在使用sqlite预填充数据库,其中包含问题和答案。我的50/50帮助按钮是BPOLAPLA。这是我的游戏课: public class NeogranicenoPetGresaka extends SwarmActivity implements OnClickListener{ MyCount brojacVremena = n

比如“谁想成为百万富翁”。当用户按50/50帮助按钮时,我希望隐藏两个错误的答案,因此将两个按钮的文本设置为“”,而不是“答案”按钮。但我不知道怎么做。我正在使用sqlite预填充数据库,其中包含问题和答案。我的50/50帮助按钮是BPOLAPLA。这是我的游戏课:

public class NeogranicenoPetGresaka extends SwarmActivity implements OnClickListener{

    MyCount brojacVremena = new MyCount(16000, 1000);

LinkedList<Long> mAnsweredQuestions = new LinkedList<Long>();

    private String generateWhereClause(){
        StringBuilder result = new StringBuilder();
        for (Long l : mAnsweredQuestions){
            result.append(" AND _ID <> " + l);
        }
        return result.toString();
    }

    Button bIzlazIzKviza, bOdgovor1, bOdgovor2, bOdgovor3, bOdgovor4, bPolaPola;
    TextView question, netacniOdg, score, countdown;
    int brojacPogresnihOdgovora = 0;
    int brojacTacnihOdgovora = 0;
    public static String tacanOdg;

    Runnable mLaunchTask = new Runnable() {
        public void run() {
            nextQuestion();
            brojacVremena.start();
        }
     };
    Runnable mLaunchTaskFinish = new Runnable() {
         public void run() {
            brojacVremena.cancel();
            finish();
         }
      };


    private class Answer {
        public Answer(String opt, boolean correct) {
            option = opt;
            isCorrect = correct;
        }

        String option;
        boolean isCorrect;
    }
    Handler mHandler = new Handler();

    final OnClickListener clickListener = new OnClickListener() {
        public void onClick(View v) {

            Answer ans = (Answer) v.getTag();
            if (ans.isCorrect) {
                brojacVremena.cancel();
                brojacTacnihOdgovora = brojacTacnihOdgovora + 5;
                Intent i = new Intent("rs.androidaplikacijekvizopstekulture.TACANODGOVOR");
                startActivity(i);
                mHandler.postDelayed(mLaunchTask,1200);
            }
        else{
            brojacVremena.cancel();
            brojacPogresnihOdgovora++;
            Intent i = new Intent(getApplicationContext(), PogresanOdgovor.class);
            i.putExtra("tacanOdgovor", tacanOdg);
            startActivity(i);
            mHandler.postDelayed(mLaunchTask,2200);
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

        setContentView(R.layout.neograniceno);

        Typeface dugmad = Typeface.createFromAsset(getAssets(), "Bebas.ttf");
        Typeface pitanje = Typeface.createFromAsset(getAssets(), "myriad.ttf");
        bIzlazIzKviza = (Button) findViewById(R.id.bIzlazIzKvizaN);
        netacniOdg = (TextView) findViewById(R.id.tvBrojPitanjaN);
        question = (TextView) findViewById(R.id.tvPitanjeN);
        bOdgovor1 = (Button) findViewById(R.id.bOdgovorN1);
        bOdgovor2 = (Button) findViewById(R.id.bOdgovorN2);
        bOdgovor3 = (Button) findViewById(R.id.bOdgovorN3);
        bOdgovor4 = (Button) findViewById(R.id.bOdgovorN4);
        bPolaPola = (Button) findViewById(R.id.bPolaPolaN);
        score = (TextView) findViewById(R.id.tvSkor2N);
        countdown = (TextView) findViewById(R.id.tvCountdownN);
        bOdgovor1.setTypeface(dugmad);
        bOdgovor2.setTypeface(dugmad);
        bOdgovor3.setTypeface(dugmad);
        bOdgovor4.setTypeface(dugmad);
        bPolaPola.setTypeface(dugmad);
        bIzlazIzKviza.setTypeface(dugmad);
        netacniOdg.setTypeface(dugmad);
        question.setTypeface(pitanje);
        score.setTypeface(dugmad);
        countdown.setTypeface(dugmad);

        nextQuestion(); //startuje prvo pitanje!
        brojacVremena.start();  //startuje brojac vremena
    }


    public class MyCount extends CountDownTimer {

        public MyCount(long millisInFuture, long countDownInterval) {
            super(millisInFuture, countDownInterval);
        }

        @Override
        public void onFinish() {
            Intent i = new Intent(getApplicationContext(), PogresanOdgovor.class);
            i.putExtra("tacanOdgovor", tacanOdg);
            startActivity(i);
            mHandler.postDelayed(mLaunchTask,2200);

            brojacPogresnihOdgovora++;
        }

        @Override
        public void onTick(long millisUntilFinished) {
            countdown.setText("" + millisUntilFinished / 1000);
        }
    }

        public void onClick(View v) {
        // TODO Auto-generated method stub


    }

        @Override public void onStop() {
            super.onStop();
            brojacVremena.cancel();
        }

    @Override
        protected void onPause() {
            // TODO Auto-generated method stub
            super.onPause();
        }

    public void nextQuestion() {

        TestAdapter mDbHelper = new TestAdapter(this);
        mDbHelper.createDatabase();

        try{    //Pokusava da otvori db

            mDbHelper.open();  //baza otvorena

            Cursor c = mDbHelper.getTestData(generateWhereClause());
            mAnsweredQuestions.add(c.getLong(0));

            List<Answer> labels = new ArrayList<Answer>();

            labels.add(new Answer(c.getString(2), true));
            labels.add(new Answer(c.getString(3), false));
            labels.add(new Answer(c.getString(4), false));
            labels.add(new Answer(c.getString(5), false));

            Collections.shuffle(labels);

            tacanOdg = c.getString(2);

            if(brojacPogresnihOdgovora < 5){


        question.setText(c.getString(1));

        bOdgovor1.setText(labels.get(0).option);
        bOdgovor1.setTag(labels.get(0));
        bOdgovor1.setOnClickListener(clickListener);

        bOdgovor2.setText(labels.get(1).option);
        bOdgovor2.setTag(labels.get(1));
        bOdgovor2.setOnClickListener(clickListener);

        bOdgovor3.setText(labels.get(2).option);
        bOdgovor3.setTag(labels.get(2));
        bOdgovor3.setOnClickListener(clickListener);

        bOdgovor4.setText(labels.get(3).option);
        bOdgovor4.setTag(labels.get(3));
        bOdgovor4.setOnClickListener(clickListener);

        netacniOdg.setText("" + brojacPogresnihOdgovora);
        score.setText("Score: " + brojacTacnihOdgovora);
            }
            else{
                brojacVremena.cancel();
                Intent i = new Intent(getApplicationContext(), Rezultat.class);
                i.putExtra("noviRezultat", brojacTacnihOdgovora);
                startActivity(i);
                mHandler.postDelayed(mLaunchTaskFinish,4000);
                SwarmLeaderboard.submitScore(6863, brojacTacnihOdgovora);
            }
        }
        finally{    // kada zavrsi sa koriscenjem baze podataka, zatvara db
            mDbHelper.close();
        }

    bIzlazIzKviza.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            finish();   
        }
    });
    }
}
公共类NeogranicenoPetGresaka扩展了SwarmacActivity实现OnClickListener{
MyCount brojacVremena=新的MyCount(1600001000);
LinkedList mAnsweredQuestions=新建LinkedList();
专用字符串generateWhereClause(){
StringBuilder结果=新建StringBuilder();
用于(长l:mAnsweredQuestions){
结果。追加(“和_ID”+l);
}
返回result.toString();
}
按钮bIzlazIzKviza、bOdgovor1、bOdgovor2、bOdgovor3、bOdgovor4、BPOLAPLA;
文本视图问题、netacniOdg、分数、倒计时;
int brojacPogresnihOdgovora=0;
int brojacTacnihOdgovora=0;
公共静态字符串tacanOdg;
Runnable mLaunchTask=new Runnable(){
公开募捐{
nextQuestion();
brojacVremena.start();
}
};
Runnable mLaunchTaskFinish=new Runnable(){
公开募捐{
brojacVremena.cancel();
完成();
}
};
私人类答案{
公共答案(字符串选项,布尔正确){
option=opt;
isCorrect=正确;
}
字符串选项;
布尔值不正确;
}
Handler mHandler=新的Handler();
final OnClickListener clickListener=new OnClickListener(){
公共void onClick(视图v){
答案ans=(答案)v.getTag();
如果(ans.isCorrect){
brojacVremena.cancel();
BrojactaniHodgovora=BrojactaniHodgovora+5;
意向i=新意向(“R.androidaplikacijekvizopstekulture.tacanodogor”);
星触觉(i);
mHandler.postDelayed(mLaunchTask,1200);
}
否则{
brojacVremena.cancel();
brojacPogresnihOdgovora++;
Intent i=新Intent(getApplicationContext(),PogresanOdgovor.class);
i、 putExtra(“Tacanodogvor”,tacanOdg);
星触觉(i);
mHandler.postDelayed(mLaunchTask,2200);
}
}
};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(窗口。功能\u无\u标题);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,WindowManager.LayoutParams.FLAG_全屏);
setContentView(R.layout.neograniceno);
Typeface dugmad=Typeface.createFromAsset(getAssets(),“Bebas.ttf”);
Typeface pitanje=Typeface.createFromAsset(getAssets(),“myriad.ttf”);
bizlazikviza=(按钮)findViewById(R.id.bIzlazIzKvizaN);
netacniOdg=(TextView)findViewById(R.id.tvBrojPitanjaN);
问题=(TextView)findViewById(R.id.tvPitanjeN);
bOdgovor1=(按钮)findViewById(R.id.bOdgovor1);
bOdgovor2=(按钮)findViewById(R.id.bOdgovor2);
bOdgovor3=(按钮)findViewById(R.id.bOdgovor3);
bOdgovor4=(按钮)findViewById(R.id.bOdgovor4);
bPolaPola=(按钮)findViewById(R.id.bPolaPolaN);
分数=(TextView)findViewById(R.id.tvSkor2N);
倒计时=(TextView)findViewById(R.id.tvCountdownN);
bOdgovor1.设置字体(dugmad);
bOdgovor2.设置字体(dugmad);
bOdgovor3.setTypeface(dugmad);
bOdgovor4.设置字体(dugmad);
bPolaPola.setTypeface(dugmad);
设置字体(dugmad);
Netacniog.setTypeface(dugmad);
问题.设置字体(pitanje);
分数。设置字体(dugmad);
倒计时。设置字体(dugmad);
nextQuestion();//startuje prvo pitanje!
brojacVremena.start();//startuje brojac vremena
}
公共类MyCount扩展了倒计时{
公共MyCount(长百万未来,长倒计时间隔){
超级(毫秒未来,倒计时间隔);
}
@凌驾
公共无效onFinish(){
Intent i=新Intent(getApplicationContext(),PogresanOdgovor.class);
i、 putExtra(“Tacanodogvor”,tacanOdg);
星触觉(i);
mHandler.postDelayed(mLaunchTask,2200);
brojacPogresnihOdgovora++;
}
@凌驾
公共void onTick(长毫秒未完成){
倒计时.setText(“+millisuntillfinished/1000);
}
}
公共void onClick(视图v){
//TODO自动生成的方法存根
}
@覆盖顶部的公共void(){
super.onStop();
brojacVremena.cancel();
}
@凌驾
受保护的void onPause(){
//TODO自动生成的方法存根
super.onPause();
}
public void nextQuestion(){
TestAdapter mDbHelper=新的TestAdapter(本);
mDbHelper.createDatabase();
试试{//Pokusava da otvori db
mDbHelper.open();//baza otvorena
游标c=mDbHelper.getTestData(generateWhereClause());
添加(c.getLong(0));
列表标签=新的ArrayList();
添加(新答案(c.getString(2),true));
添加(新答案(c.getString(3),false));
添加(新答案(c.getString(4),false));
添加(新答案(c.getString(5),false));
收藏。洗牌(标签);
tacanOdg=c.getString(2);
if(brojacPogresnihOdgovora<5){
问题.setText(c.getString(1));
bOdgovor1.setText(labels.get(0.option));
bOdgovor1.setTag(labels.get(0));
bOdgovor1.setOnClickListener(单击Listener);
bOdgovor2.setText(labels.get(1.option));