Java 使用+;1作为循环浏览列表中的图像和文字的位置?

Java 使用+;1作为循环浏览列表中的图像和文字的位置?,java,android,image,list,Java,Android,Image,List,所以我对编程和java非常陌生,不能让它工作。 我正在尝试制作一个测验应用程序,如果你输入正确的答案,就会出现新的图像,并且正确的答案会改变。我将答案和图像存储在列表中,现在如果答案正确,我希望它循环到列表中的下一项。但我似乎做错了什么。 抱歉,如果这是一个愚蠢的问题,请提前感谢您的帮助 public class MainActivity extends AppCompatActivity { Button sbm_btn; EditText edittext;

所以我对编程和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();

                        }


                    }
                }
        );


    }
}
public类MainActivity扩展了AppCompatActivity{
按钮sbm_btn;
编辑文本编辑文本;
日志mytag;
ImageView imgv1;
ImageView imgv2;
ImageView imgv3;
ImageView imgv4;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
onButtonClick();
}
public void on按钮单击(){
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=(按钮)findviewbyd(R.id.sbm_btn);
edittext=(edittext)findViewById(R.id.answerfield);
最终处理程序=新处理程序();
最终ArrayList answers=新ArrayList();//我的答案列表
答案。添加(“詹姆斯·邦德”);
答案。加上(“伊丽莎白女王”);
final int[]view1={//my图像列表,第三个是用于测试的占位符
R.牵引车,
R.可拉拔皇冠,
R.拉拔式手枪};
最终int[]视图2={
R.drawable.伦敦,
R.drawable.老妇人,
R.拉拔式手枪};
最终int[]视图3={
吸烟,
R.可拉伸连衣裙,
R.拉拔式手枪};
最终int[]视图4={
拉拔式手枪,
R.drawable.island,
R.拉拔式手枪};
sbm_btn.setOnClickListener(
新建视图。OnClickListener(){
@凌驾
公共void onClick(视图v){
整数=0;
如果
((edittext.getText().toString().equalsIgnoreCase(answers.get(number))){
number++;//为什么这不起作用?
Toast Toast=Toast.makeText(getApplicationContext(),
“干得好!”,吐司。长度(短);
toast.setGravity(重心|重心|水平,0,0);
toast.show();
handler.postDelayed(新的Runnable(){
公开募捐{
imgv1.setImageResource(view1[+1]);//这似乎可以工作一次交换图片,之后什么也不做。
imgv2.setImageResource(视图2[+1]);
imgv3.setImageResource(视图3[+1]);
imgv4.setImageResource(视图4[+1]);
}
}, 1300);
}否则{
Toast Toast=Toast.makeText(getApplicationContext(),
“错了!”,吐司。长度(短);
toast.setGravity(重心|重心|水平,0,0);
toast.show();
}
}
}
);
}
}

尝试输入int number=0;在你班上名列前茅

您不能在单击中将数字初始化为0(这将在每次单击时将该数字重置为零)。您需要在单击之前执行此操作(在类中,而不是在方法中)。而且,您的java语法非常复杂,因为您对它了解不够。我建议你和我一起练习,非常感谢!这是一个非常合乎逻辑的解释,为什么它不起作用。我也会看看如何改进我的语法,我没有遵循正确的课程或任何东西,我只是想自学。