if else语句设置不同的listadaptor

时间:2013-05-19 17:06:07

标签: android json if-statement android-listview

我正在尝试设置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告诉我它是“死代码”。 我该怎么办?

4 个答案:

答案 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);
}