如何确定它是我的文本还是其他人,然后正确附加到listview

时间:2015-02-07 01:26:32

标签: java android listview

到目前为止,我有以下代码:

if (c.getString(c.getColumnIndexOrThrow("type")).toString().contains("1")) {
    Context context = getApplicationContext();
    CharSequence text = c.getString(c.getColumnIndexOrThrow("type")).toString();
    int duration = Toast.LENGTH_SHORT;
    Toast toast = Toast.makeText(context, text, duration);
    toast.show();
    adapter = new ArrayAdapter<String>(this, R.layout.incomming, R.id.message, sms_body);
    lv.setAdapter(adapter);
} else {
    adapter = new ArrayAdapter<String>(this, R.layout.outgoing, R.id.message, sms_body);
     lv.setAdapter(adapter);
}

大部分都有用,但它只选择一个,所以我的问题是如何使用传入布局或发送布局正确追加,这是我第一次得到这个&#34;幻想&#34;有了listviews所以非常感谢 ANY 帮助!感谢。

问题:    我的意思是我希望它看起来像iOS信使或更好的Facebook信使,就好像它的收件箱信息是蓝色的,如果它是我的灰色布局。

额外信息:     它会将所有收件箱和已发送框的消息发送到只发给您文本的号码。您需要的任何其他信息都知道!

完整代码:http://pastebin.com/NmV39ajq

融合。

1 个答案:

答案 0 :(得分:0)

目前您正在更改ListView布局,这不是为ListView行显示多个布局的正确方法:

1。创建一个自定义适配器,它使用两个布局,一个用于收件箱,另一个用于我的邮件。

参见以下示例: Multiple Layout ListView

2. 将ArrayList与自定义类对象一起用作包含邮件类型和邮件正文的数据源

public class MessageDetails{
 private String mesgType;
 private String mesgBody;
 // create getter/setter methods to set/get both variables values

}

3. 使用MessageDetails类对象创建一个ArrayList:

ArrayList<MessageDetails>  arrMessageDetails=new ArrayList<MessageDetails>;
if (c.moveToLast()) {
 do {
       if (c.getString(c.getColumnIndexOrThrow("address")) == null) {
            c.moveToNext();
            continue;
        }

 String Body = c.getString(c.getColumnIndexOrThrow("body"))
                            .toString();
 CharSequence text = c.getString(c.getColumnIndexOrThrow("type")).toString();
 MessageDetails object=new MessageDetails();
 object.setmesgType(text);
 object.setmesgBody(Body);
 arrMessageDetails.add(object);
} while (c.moveToPrevious());

4. 使用arrMessageDetails作为适配器的数据源:

CustomAdapter adapter = new CustomAdapter(this,R.id.message, arrMessageDetails);
lv.setAdapter(adapter);