【问题标题】:compare two text (one from Button, compare after click it), Android比较两个文本(一个来自 Button,点击后比较),Android
【发布时间】:2017-05-11 03:53:00
【问题描述】:

我是 Android Studio 的新手,你能帮帮我吗? 从下面的片段代码中,我尝试比较两个文本,其中一个来自 Button,单击 test_ans 按钮后,如果它们相同,将进入“真实”活动。但不幸的是,该应用程序已停止:(

package com.xxx.xxx.xxx;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class Main extends AppCompatActivity {

private String mAnswer = "xxx";
private Button mButtonAns;

static {
    System.loadLibrary("native-lib");
}

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

    mButtonAns = (Button)findViewById(R.id.test_ans);
    mButtonAns.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View view) {

            if (mButtonAns.getText() == mAnswer) {
                Intent i = new Intent(Main.this, True.class);
                startActivity(i);
                //^go to true activity

            } else {
                //go to false activity
            }

        }
    });
}
}

我试过删除@Override public void onClick(View view)getText()变红了,是onClick的问题?请帮忙;(

【问题讨论】:

  • 遇到同样问题的朋友,请重新检查您的AndroidManifest

标签: java android xml


【解决方案1】:

对于比较 2 字符串,您需要使用 equals 而不是 ==== 将比较 2 String 的指针,equals 将比较 2 String 的值

if (mAnswer.equals(mButtonAns.getText())) {
   ...
}

【讨论】:

  • 是的,看起来更好..但应用仍然无法打开(“很遗憾,XXX 已停止”)
  • @eaglearms92 请分享您的崩溃日志
  • 啊,没关系,我没有在 Manifest 上声明.. 愚蠢的我,谢谢 :D
【解决方案2】:
if (mButtonAns.getText().toString().equals(mAnswer)){
    //do something 
}

【讨论】:

    【解决方案3】:

    您也可以使用matches 来比较字符串

    if (mAnswer.matches(mButtonAns.getText())) { ... }

    【讨论】:

      猜你喜欢
      • 2014-09-01
      • 1970-01-01
      • 2011-08-25
      • 2022-11-11
      • 1970-01-01
      • 1970-01-01
      • 2011-08-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多