我正在尝试设置if-else语句以使用JSON创建聊天应用程序,我想让if-else语句读取JSON并将其放在我希望它们的标签中。
想象一下,我是“A”,我和人“B”聊天。
如果消息来自“B”(不是我),它会将消息放入listview右侧标签。 ELSE - 当我发送消息时,它会被放到listview中的左侧标签。
我在声明中使用的字符串是“TAG_FACEBOOK”。
我的listadaptor:
ListAdapter adapter = new SimpleAdapter(this, contactList,
R.layout.list_item, new String[] { TAG_CONTEXT, TAG_FACEBOOK }, new int[] {
R.id.context, R.id.facebook });
setListAdapter(adapter);
我尝试使用像这样的if-else语句来解决它:
if (TAG_FACEBOOK == "B"){
ListAdapter adapter = new SimpleAdapter(this, contactList,
R.layout.list_item, new String[] { TAG_CONTEXT, TAG_FACEBOOK }, new int[] {
R.id.context, R.id.facebook });
setListAdapter(adapter);
}
else {
ListAdapter adapter = new SimpleAdapter(this, contactList,
R.layout.list_item, new String[] { TAG_CONTEXT, TAG_FACEBOOK }, new int[] {
R.id.contextL, R.id.facebookL });
setListAdapter(adapter);
}
但Eclipse告诉我它是“死代码”。 我该怎么办?
答案 0 :(得分:4)
TAG_FACEBOOK == "B"
仅比较引用,而不是字符串内容。
使用TAG_FACEBOOK.equals("B")
。
答案 1 :(得分:1)
首先,在Java中,使用以下方法比较两个字符串(s1和s2):
s1.equals(s2)
其次,Eclipse告诉你它是死代码,因为TAG_FACEBOOK是常量。您需要此字符串基于用户是动态的,这样实际上可以同时到达if或else块,具体取决于字符串。
答案 2 :(得分:1)
所以使用.equals()
进行字符串比较,就像其他人提到的那样,但是听起来像你的适配器应该检查视图应该呈现在屏幕的哪一侧(在{ {1}}方法)。
答案 3 :(得分:-3)
//This is array list
ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
//Now if-else statement which providing details of list if list is matching then it
//will to go the activityone if not matching it will go to the activitytwo.
if (list.size() != 0) {
Intent intent = new Intent(MainActivity.this, activityone.class);
intent.putExtra("key", list);
startActivity(intent);
} else {
String string = " ";
Intent i = new Intent(MainActivity.this, activitytwo.class);
i.putExtra("key1", string);
startActivity(i);
}