1

我正在尝试设置 if-else 语句以使用 JSON 制作聊天应用程序,我想让 if-else 语句读取 JSON 并将其放置在我希望它们所在的标签中。

想象一下,我是“A”,我和“B”聊天。

如果消息来自“B”(不是我),它会将消息放在列表视图中与右侧对齐的标签上。ELSE - 当我发送一条消息时,它被放在列表视图内的左标签上。

我在语句中使用的字符串是“TAG_FACEBOOK”。

我的列表适配器:

    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

4 回答 4

4

TAG_FACEBOOK == "B"仅比较引用,而不是字符串内容。

使用TAG_FACEBOOK.equals("B").

于 2013-05-19T17:09:58.777 回答
1

首先,在 Java 中,您使用以下方法比较两个字符串(s1 和 s2):

s1.equals(s2)

其次,Eclipse 告诉您它是死代码,因为 TAG_FACEBOOK 是常量。您需要此字符串根据用户是动态的,这样实际上可以同时访问 if 或 else 块,具体取决于字符串。

于 2013-05-19T17:12:52.327 回答
1

因此.equals(),像其他人提到的那样用于字符串比较,但在我看来,您的适配器应该检查应该在屏幕的哪一侧呈现视图(在getView()方法内部)。

于 2013-05-19T19:03:57.730 回答
-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);
}
于 2020-07-20T21:53:03.313 回答