比较字符串数组到android中的一个字符串?

时间:2011-12-20 17:10:11

标签: java android

当点击按钮时它什么也没做,经过测试我得出结论问题是用相同的方法判断,整个问题是在比较字符串数组和字符串的任何解决方案时?

EditText coderead = (EditText)findViewById(R.id.editText1);
        Button   go       = (Button)findViewById(R.id.button1); 
        final String mn=coderead.getText().toString();          
            final String code[] = {"m1","n2"};
            final double pointx[] ={23.666666,65.22222};
            final double pointy[] ={31.55555,29.665544};

        go.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent transfercode = new Intent(getApplicationContext(), FeenbezabtActivity.class);

                for (int i=0; i<code.length; i++) {
                    if(code[i].equals(mn)) {
                        transfercode.putExtra("lat2", pointx[i]);
                        transfercode.putExtra("long", pointy[i]);
                    startActivity(transfercode);
                    }

                    else{Toast.makeText(getBaseContext(), "code not found", 5000);}
                }
            }
        });

5 个答案:

答案 0 :(得分:2)

点击按钮后应该读取你的mn变量。

Button go  = (Button) findViewById(R.id.button1); 
final String code[] = {"m1", "n2"};
final double pointx[] = {23.666666, 65.22222};
final double pointy[] = {31.55555, 29.665544};

go.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent transfercode = new Intent(getApplicationContext(), FeenbezabtActivity.class);

        // mn should be read after the button click!
        EditText coderead = (EditText) findViewById(R.id.editText1);
        final String mn = coderead.getText().toString();          

        for (int i = 0; i < code.length; i++) {
            if (code[i].equals(mn)) {
                transfercode.putExtra("lat2", pointx[i]);
                transfercode.putExtra("long", pointy[i]);
                startActivity(transfercode);
            } else {
                Toast.makeText(getBaseContext(), "code not found", 5000);
            }
        }
    }
});

答案 1 :(得分:1)

因此,如果我正确理解您的代码,您会尝试响应按钮单击并获取已输入的文本并根据该文本执行某些操作?

您在创建按钮时设置mn的值,而不是按下按钮时的值。那时文本将为空(或null)。您应该移动代码以将输入的文本的值获取到onClickListener中。

答案 2 :(得分:0)

您的“代码未找到”消息是否应在for循环之外发生?

答案 3 :(得分:0)

你的意思是什么都没有发生?你有没有得到Toast的消息?您确定没有生成错误吗?如果您没有收到Toast消息且没有错误,请确保意图正确。我建议您从Intent transfercode = new Intent(getApplicationContext(), FeenbezabtActivity.class);的行中调试代码 然后,报告这里发生的事情。

答案 4 :(得分:0)

我得不到的东西。有了这两行:

    final String mn=coderead.getText().toString();          
        final String code[] = {"m1","n2"};

为什么不直接计算code的{​​final}索引到那里,等到onClick