Android 当其他用户发送消息时,更改可绘制的

Android 当其他用户发送消息时,更改可绘制的,android,Android,我正在尝试创建一个带有气泡的聊天,我从一个Json文件中获取消息 现在,我试图在特定用户讲话时改变气泡的颜色 我使用Java从Json文件中获取消息和发送消息的用户的Id 我创建了一个“会话”来获取登录用户的Id,并将此Id与消息发送者的Id进行比较,以检查我将使用的Id 为此,我创建了一个名为position的字符串。如果登录用户的ID与打开的会话的ID相等,则气泡会改变颜色并向右移动 我创建了一个适配器来接收消息并将气泡插入其中。我正在检查哪个用户发送了消息,调用position变量 我的问

我正在尝试创建一个带有气泡的聊天,我从一个Json文件中获取消息

现在,我试图在特定用户讲话时改变气泡的颜色

我使用Java从Json文件中获取消息和发送消息的用户的Id

我创建了一个“会话”来获取登录用户的Id,并将此Id与消息发送者的Id进行比较,以检查我将使用的Id

为此,我创建了一个名为position的字符串。如果登录用户的ID与打开的会话的ID相等,则气泡会改变颜色并向右移动

我创建了一个适配器来接收消息并将气泡插入其中。我正在检查哪个用户发送了消息,调用position变量

我的问题是,所有的气泡都在改变,但只有一种颜色。我想改变特定信息的泡沫。当登录用户讲话时,它必须显示不同的气泡

我该怎么做

变量

private static final String TAG_MESSAGE = "reply";
private static final String TAG_ID = "id";
获取数据

 //Calling session from logged in user

            NewSession app = (NewSession) getApplication();
            String logid = app.getLogid();

...

JSONObject jsonObj = new JSONObject(jsonStr);

                    // Getting JSON Array node
                    contacts = jsonObj.getJSONArray(TAG_CONTACTS);

                    // looping through All Contacts
                    for (int i = 0; i < contacts.length(); i++) {
                        JSONObject c = contacts.getJSONObject(i);

                        String id = c.getString(TAG_ID);
                        String message = c.getString(TAG_MESSAGE);
                        String position = "";

                        if(username == logid){
                        position = "right";
                        }else{
                        position = "left";
                        }

                       HashMap<String, String> contact = new HashMap<String, String>();

                      // adding each child node to HashMap key => value
                      contact.put(TAG_ID, id);
                      contact.put(TAG_MESSAGE, message);
谢谢。

不要将字符串与 s1==s2 你应该使用
s1.equals(s2)

您在适配器中使用的是
==
(参考)比较,而不是
字符串#equals()
比较

试试这个:

     message.setBackgroundResource("left".equalsIgnoreCase(url) ? R.drawable.bubble_green : R.drawable.bubble_yellow);

不要将字符串与s1==s2进行比较,您应该使用s1.equals(s2)Yeaa,非常感谢,现在工作正常!非常感谢。
     message.setBackgroundResource("left".equalsIgnoreCase(url) ? R.drawable.bubble_green : R.drawable.bubble_yellow);