好的,我这里有一个switch case语句,正在尝试并尝试每个选项。基本上我想要的是,如果用户在文本框中输入字母A,则背景将变为b!如果他们不输入字母A,那么我希望它停止执行代码。但是正在发生的是,如果用户输入的背景为字母A,例如说字母Q,那么背景将变为字母R,而不是告诉用户他们错了。基本上,我想知道如果用户不输入他们所在的字母,该如何阻止背景更改。

     public void afterTextChanged(Editable s) {
                char ch = words.getText().toString().charAt(0);

                switch(ch - 'A') {

                case 0:
                    //A;

                    gestureViewer.setBackgroundResource(R.drawable.lettersb);

                    break;
                case 1:
                    gestureViewer.setBackgroundResource(R.drawable.lettersc);
                    break;
                case 2:
                    gestureViewer.setBackgroundResource(R.drawable.lettersd);

                    break;
                case 3:
                    gestureViewer.setBackgroundResource(R.drawable.letterse);

                    break;
                case 4:
                    gestureViewer.setBackgroundResource(R.drawable.lettersf);
                    break;
                case 5:
                    gestureViewer.setBackgroundResource(R.drawable.lettersg);
                break;
                case 6:
                    gestureViewer.setBackgroundResource(R.drawable.lettersh);
                    break;
                case 7:
                    gestureViewer.setBackgroundResource(R.drawable.lettersi);
                    break;
                case 8:
                    gestureViewer.setBackgroundResource(R.drawable.lettersj);
                    break;
                case 9:
                    gestureViewer.setBackgroundResource(R.drawable.lettersk);
                    break;
                case 10:
                    gestureViewer.setBackgroundResource(R.drawable.lettersl);
                    break;
                case 11:
                    gestureViewer.setBackgroundResource(R.drawable.lettersm);
                    break;
                case 12:
                    gestureViewer.setBackgroundResource(R.drawable.lettersn);
                    break;
                case 13:
                    gestureViewer.setBackgroundResource(R.drawable.letterso);
                    break;
                case 14:
                    gestureViewer.setBackgroundResource(R.drawable.lettersp);
                    break;
                case 15:
                    gestureViewer.setBackgroundResource(R.drawable.lettersq);
                    break;
                case 16:
                    gestureViewer.setBackgroundResource(R.drawable.lettersr);
                    break;
                case 17:
                    gestureViewer.setBackgroundResource(R.drawable.letterss);
                    break;
                case 19:
                    gestureViewer.setBackgroundResource(R.drawable.letterst);
                    break;
                case 20:
                    gestureViewer.setBackgroundResource(R.drawable.lettersu);
                    break;
                case 21:
                    gestureViewer.setBackgroundResource(R.drawable.lettersv);
                    break;
                case 22:
                    gestureViewer.setBackgroundResource(R.drawable.lettersw);
                    break;
                case 23:
                    gestureViewer.setBackgroundResource(R.drawable.lettersx);
                    break;
                case 24:
                    gestureViewer.setBackgroundResource(R.drawable.lettersy);
                break;
                case 25:
                    gestureViewer.setBackgroundResource(R.drawable.lettersz);
                    break;


如果将图片设置成一个数组然后从那里去会更好吗?香港专业教育学院试图包括如果开关的情况下,但它根本没有工作...。

最佳答案

我会预先填充数组并调用:

gestureViewer.setBackgroundResource(myArray[ch - 'A']);


这将使您的代码更具可读性。

您也可以使用Map<Character,MyImage>进行操作-将来可以轻松添加更多功能。
如果这样做,将使用发票

gestureViewer.setBackgroundResource(myMap.get(ch));


注意,在应用程序的运行时中,阵列/映射仅需要填充一次。

09-11 19:18