0

クイズ番組を作りたい。質問は、アセット フォルダー内のテキスト ファイルにあります。回答は、質問の番号と呼ばれるアセット フォルダーにもあります (たとえば、最初の質問の回答は 1 というテキスト ファイルにあります)。質問と回答をランダムに与えたい(ボタンへの回答)。これまではすべて問題ありません (最短の解決策ではないかもしれませんが、うまく機能します)。次に、ユーザーは正しいボタンをクリックして質問に答えることができます。そして、ここに問題があります。ボタンのテキストと応答ファイルの最初の行を取得します (常に最初の行が応答テキスト ファイルの正しい答えです)。それは同じはずです、そして私は署名します、これは正しい答えです。しかし、それは同じではなく、その理由はわかりません。応答ファイルからボタンにテキストを入力し、応答ファイルから最初の行を取得します。だから同じはずです。log cat に出力したところ、同じように見えます。何がうまくいかなかったのかわかりません。誰か助けてくれませんか。

これは、ボタンのテキストを (ランダムに) 設定し、最初の行とボタンのテキストを比較する場所です。

BufferedReader br2 = new BufferedReader(is2, 8192);

                        for(int k2=0; k2<3; k2++){
                            try {
                                kerdes2[k2] =  br2.readLine();
                                final ArrayList <Integer> kerdesno2 = new ArrayList<Integer>();
                                for(int j=0;j<3;j++) kerdesno2.add(j);
                                Collections.shuffle(kerdesno2);
                                System.out.println(kerdesno2);
                                answ.setText(kerdes2[kerdesno2.get(0)]);
                                answ2.setText(kerdes2[kerdesno2.get(1)]);
                                answ3.setText(kerdes2[kerdesno2.get(2)]);
                            } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
                        }
                            answ.setOnClickListener(new View.OnClickListener() {

                                @Override
                                public void onClick(View v) {
                                    // TODO Auto-generated method stub
                                    InputStreamReader is3 = null;
                                    try {
                                        is3 = new InputStreamReader(am.open(i3), "ISO-8859-1");
                                    } catch (UnsupportedEncodingException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }
                                    BufferedReader br3 = new BufferedReader(is3, 8192);
                                    try {
                                        String helyes = br3.readLine();
                                        System.out.println(helyes);
                                        String gomb = answ.getText().toString();
                                        System.out.println(gomb);

                                        for(int f=0; f<helyes.length(); f++)
                                        {
                                            char c = helyes.charAt(f);
                                            char d = gomb.charAt(f);
                                            if(c != d){
                                                System.out.println(c);
                                                System.out.println(((String) gomb).indexOf(c));
                                            }
                                        }

                                        if(gomb == helyes)                                  
                                        {
                                            x++;
                                            TextView eredmeny = (TextView)findViewById(R.id.eredmeny);
                                            eredmeny.setText("Eredményed: " + Math.round(x*100/i2) + "%");
                                        }
                                        else
                                        {
                                            TextView eredmeny = (TextView)findViewById(R.id.eredmeny);
                                            eredmeny.setText(gomb + " = " + helyes);
                                        }
                                    } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }
                                }
                            });

                            answ2.setOnClickListener(new View.OnClickListener() {

                                @Override
                                public void onClick(View v) {
                                    // TODO Auto-generated method stub
                                    InputStreamReader is3 = null;
                                    try {
                                        is3 = new InputStreamReader(am.open(i3), "ISO-8859-1");
                                    } catch (UnsupportedEncodingException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }
                                    BufferedReader br3 = new BufferedReader(is3, 8192);
                                    try {
                                        String helyes = br3.readLine();
                                        System.out.println(helyes);
                                        String gomb = answ2.getText().toString();
                                        System.out.println(gomb);
                                        if(gomb == helyes)                                          
                                        {
                                            x++;
                                            TextView eredmeny = (TextView)findViewById(R.id.eredmeny);
                                            eredmeny.setText("Eredményed: " + Math.round(x*100/i2) + "%");
                                        }
                                        else
                                        {
                                            TextView eredmeny = (TextView)findViewById(R.id.eredmeny);
                                            eredmeny.setText(gomb + " = " + helyes);
                                        }
                                    } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }
                                }
                            });

                            answ3.setOnClickListener(new View.OnClickListener() {

                                @Override
                                public void onClick(View v) {
                                    // TODO Auto-generated method stub
                                    InputStreamReader is3 = null;
                                    try {
                                        is3 = new InputStreamReader(am.open(i3), "ISO-8859-1");
                                    } catch (UnsupportedEncodingException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }
                                    BufferedReader br3 = new BufferedReader(is3, 8192);
                                    try {
                                        String gomb = answ3.getText().toString();
                                        String helyes = br3.readLine();
                                        System.out.println(gomb);
                                        System.out.println(helyes);
                                        if(gomb == helyes){
                                            x++;
                                            TextView eredmeny = (TextView)findViewById(R.id.eredmeny);
                                            eredmeny.setText("Eredményed: " + Math.round(x*100/i2) + "%");
                                        }
                                        else
                                        {
                                            TextView eredmeny = (TextView)findViewById(R.id.eredmeny);
                                            eredmeny.setText(gomb + " = " + helyes);
                                        }
                                    } catch (IOException e) {
                                        // TODO Auto-generated catch block
                                        e.printStackTrace();
                                    }
                                }
                            });

ご覧のとおり、問題がどこにあるのかを理解するために 2 つの文字列を繰り返し処理しようとしましたが、見つけることができませんでした...

4

2 に答える 2

0

私はあなたが比較していることを見ることができます

if(gomb == helyes){

あるべきなのに

if(gomb.equals(helyes)){
于 2013-04-23T15:00:03.217 に答える