使用+1作为位置来循环浏览列表中的图像和单词?

时间:2017-03-02 11:37:54

标签: java android image list

所以我对编程和java非常陌生,无法让它工作。 我正在尝试制作一个测验应用程序,如果您键入正确答案,则会显示新图像并更正正确的答案。我将答案和图像存储在列表中,现在我想让它循环到列表中的下一个项目,如果答案是正确的。但我似乎做错了什么。 对不起,如果这是一个愚蠢的问题,并提前感谢您的帮助!

    public class MainActivity extends AppCompatActivity {


    Button sbm_btn;
    EditText edittext;
    Log mytag;
    ImageView imgv1;
    ImageView imgv2;
    ImageView imgv3;
    ImageView imgv4;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        onButtonClick();
       }

        public void onButtonClick () {

            imgv1 = (ImageView) findViewById(R.id.imageView1);
            imgv2 = (ImageView) findViewById(R.id.imageView2);
            imgv3 = (ImageView) findViewById(R.id.imageView3);
            imgv4 = (ImageView) findViewById(R.id.imageView4);

            sbm_btn = (Button) findViewById(R.id.sbm_btn);
            edittext = (EditText) findViewById(R.id.answerfield);
            final Handler handler = new Handler();

            final ArrayList<String> answers = new ArrayList<>();   // My list of answers
            answers.add("james bond");
            answers.add("queen elisabeth");

            final int[] view1 = {                                  // my lists of images, the third is placeholder for testing
                    R.drawable.car,
                    R.drawable.crown,
                    R.drawable.pistol};
            final int[] view2 = {
                    R.drawable.london,
                    R.drawable.oldwoman,
                    R.drawable.pistol};
            final int[] view3 = {
                    R.drawable.smoking,
                    R.drawable.dress,
                    R.drawable.pistol};
            final int[] view4 = {
                    R.drawable.pistol,
                    R.drawable.island,
                    R.drawable.pistol};



            sbm_btn.setOnClickListener(
                new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {

                        int number = 0;
                        if
                                ((edittext.getText().toString().equalsIgnoreCase(answers.get(number)))) {
                                    number++;           // Why doesnt this work?

                            Toast toast = Toast.makeText(getApplicationContext(),
                                    "Well Done!", Toast.LENGTH_SHORT);
                            toast.setGravity(Gravity.CENTER | Gravity.CENTER_HORIZONTAL, 0, 0);
                            toast.show();

                            handler.postDelayed(new Runnable() {
                                public void run() {
                                    imgv1.setImageResource(view1[+1]);      // this seems to work swappping pictures once and after that does nothing.
                                    imgv2.setImageResource(view2[+1]);
                                    imgv3.setImageResource(view3[+1]);
                                    imgv4.setImageResource(view4[+1]);

                                }
                            }, 1300);

                        } else {
                            Toast toast = Toast.makeText(getApplicationContext(),
                                    "WRONG!", Toast.LENGTH_SHORT);

                            toast.setGravity(Gravity.CENTER | Gravity.CENTER_HORIZONTAL, 0, 0);
                            toast.show();

                        }


                    }
                }
        );


    }
}

1 个答案:

答案 0 :(得分:0)

尝试put int number = 0;进入班级顶层的领域。