-1

我正在尝试创建一个应用程序来读取 NFC 标签并根据字符串数组中的字符串检查标签,然后在另一个活动上设置文本。我已经让它工作,以便它检查字符串是否存在并在新活动中设置文本,但我希望能够指定我希望它在数组中检查哪个字符串,因为在然后我想在新活动中显示的 NFC 标签。我已经为此尝试过:

result == getResources().getString(R.string.test_dd)

以下是相关代码:

String[] dd;

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

    dd = getResources().getStringArray(R.array.device_description);

}

@Override
    protected void onPostExecute(String result) {
        if (result != null) {
            if(doesArrayContain(dd, result)) {
            Vibrator v = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
            v.vibrate(800);
                    Intent newIntent = new Intent(getApplicationContext(), TabsTest.class);
                    Bundle bundle1 = new Bundle();
                    bundle1.putString("key", result);
                    newIntent.putExtras(bundle1);
                    startActivity(newIntent);
                    Toast.makeText(getApplicationContext(), "NFC tag written successfully!", Toast.LENGTH_SHORT).show();

        }
            else{
                Toast.makeText(getApplicationContext(), result + " is not in the device description!", Toast.LENGTH_SHORT).show();
            }
    }
}

编辑:

这是使用的方法,请任何人帮助我解决这个问题:

public static boolean doesArrayContain(String[] array, String text) {
    for (String element : array) {
        if(element != null && element.equalsIgnoreCase(text)) {
             return true;
        }
    }
    return false;
}
4

2 回答 2

1

要比较字符串(和其他对象)的相等性,请使用该equals()方法。==比较对象的身份(相同的字符串对象)。

于 2013-07-23T10:16:10.570 回答
0

这是我找到的解决方案:

创建一个新方法:

public static boolean stringCaseInsensitive(String string, String result) {
        if(string != null && string.equalsIgnoreCase(result)) {
             return true;
        }
    return false;
}

并像这样调用它:

if(stringCaseInsensitive(getResources().getString(R.string.test_dd), result)) 
                {
                    Intent newIntent = new Intent(getApplicationContext(), TabsTest.class);
                    Bundle bundle1 = new Bundle();
                    bundle1.putString("key", result);
                    newIntent.putExtras(bundle1);
                    startActivity(newIntent);
                    Toast.makeText(getApplicationContext(), "NFC tag written successfully!", Toast.LENGTH_SHORT).show();
                }
                else{
                }
于 2013-07-23T11:19:33.880 回答