Textview数据用作条件if语句

时间:2018-07-12 19:09:15

标签: android android-studio if-statement textview conditional

我想做一个有条件的if语句。因此,如果textview说x,则执行y。这可能吗?我一直在尝试使用以下代码

if(tvresult.getText() == ("Environment"){
    testView.setText("NotAssignYet");

tvresult文本视图显示以下文本

   [
 {"Sensor Type": "Environment",
 "Sensor ID":"5a7de613e13508be088dc4a8",
 "Vendor Name":"Monnit",
 "Vendor ID": "5a7ddc2de13508be088dc4a7",
 "Project Location Name": "862 White Street, Dubuque, IA, 52001",
 "Project Location ID": "5a01c555ad63f900b5411eed",
 "Gateway Name": "Gateway Test - Planning Stage",
 "Gateway ID":"5b1836f3389a4eaa38ff887f",
 "Vendor Sensor Type": "Temperature Test - Planning Stage",
 "Vendor Sensor ID": "NotAssignedYet"}
 ]

可以按照我的要求做吗?

2 个答案:

答案 0 :(得分:1)

我看到了您的目标,这是可能的,但您使用目标的方式却不是。

我认为您必须使用

  

tvresult.getText()。toString()。contains(“环境”)

而不是

  

tvresult.getText()==“环境”

因为tvresult.getText() 不仅包含“环境”,还包含更多文本。因此您的代码应为:

 if (tvresult.getText().toString().contains("Environment")){ 

   testView.setText("NotAssignYet");
}

请紧记tvresult.getText()不返回 String 对象,它返回的 CharSequence 没有{{1 }}方法,所以我用.contains()进行了转换。

祝你好运!

答案 1 :(得分:-1)

要在TextView中获取文字,您可以执行以下操作:

 String strJson = tvresult.getText().toString();

从您的文字中可以看到,它是JSONArray。因此,您必须首先解析它以检查Sensor Type(据我了解,这就是您要寻找的东西)。

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
.`
.
.
JSONArray jsonAr = new JSONArray(strJson);
JSONObject jsonOb = jsonAr.getJSONObject(0);
String sensorType=jsonOb.getString("Sensor Type"); 
if(sesorType.equals("Environment"){
    testView.setText("NotAssignYet");
}

这样,您还可以例如检查Vendor ID并做任何您想做的事。