2

我正在创建一个自定义 SMS 应用程序,例如 Handcent、Chomp、textPlus 和 Pansi SMS。我目前试图模仿的是这样的收件箱,但只有联系人姓名和在textviews中收到的最新消息:http: //venturebeat.files.wordpress.com/2011/07/pinger_sms_free_inbox_android.png

在我的 SMSList 类(扩展 Activity)中,此方法被传递到我的 CustomAdapter 构造函数中:http: //pastebin.com/TgsshJbc

在我的 CustomAdapter 类中,一个名为 elements 的数组列表保存来自上述方法的数据。所以什么时候这样做:

textview1.setText(elements.get(position);

这将返回带有所有正确对应电话号码的所有短信。

这是问题所在:

我需要将电话号码分开并将其传递到textview1并将消息传递到textview2。我尝试过创建:

List<String> contactNo = new ArrayList<String>();
List<String> message = new ArrayList<String>();
ListIterator<String> it;
contactNo = elements;
message = elements;

it = contactNo.listIterator();
while (it.hasNext()) {
    it.set(it.next().split(" ")[0]); // Keep the number, discard the message
}

it = messages.listIterator();
while (it.hasNext()) {
    it.set(it.next().split(" ")[1]); // Keep the message, discard the number
}

当我在 textview1 中尝试 contactNo 时,工作正常。但是 textview2 中的消息会导致列表错误并且什么也不显示。

问题二: 以这种方式应用代码时(不使用除获取大小以外的元素),电话号码显示正确,但消息在第 7 条消息后重复出现。请注意,我总共有 129 条短信,所以在我的 129 条项目列表中,前 7 条消息显示了 18 次:

http://pastebin.com/dJy2ie9g

目标:

我的目标是在每个列表项的两个单独的文本视图中正确读取每个电话号码及其消息,就像将两者都读入一个文本视图一样。分离的原因是出于造型目的。有没有人知道为什么我在第一个和第二个问题上有错误?

4

1 回答 1

0

关于第二个问题:调用
holder.latestSMS.setText(messages.get(position); // Display text message segment 应该在 ' if' 语句之外(即它也应该被调用 when convertView!=null

您不能假设convertView传递给的参数与参数getView匹配position

于 2012-11-12T14:23:20.263 回答