0

我之前问过一个关于拆分字符串的问题,但可能还不够清楚。

我做了一个简单的活动,其中有一个例子来说明我的问题。

我有一条消息,它是来自服务器的一条很长的消息。

我需要拆分此消息并将其放入列表视图中,我将向您展示我的代码。

public class Page1 extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity6);

    String message = "0---12,,,2013-02-12 08:04,,,this is a test,,,0---11,,,2013-02-12 08:05,,,and this is why it is damaged,,,0---10,,,2013-02-12 08:06,,,what comes from select data randomly";

    String[] variables = message.split(",");

    ListView listView1 = (ListView) findViewById(R.id.listView12);
    String[] items = { variables.toString() };

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, items);

    listView1.setAdapter(adapter);

}

}

现在让我们说拆分是逗号“,”所以它将是

0---12      ------->ID1

2013-02-12 08:04  ------------>date1

this is a test   ----------->subject1

0---11    ------->ID2

2013-02-12 -8:05   ------------>date2

and this is why it is damaged   ----------->subject2

等等,现在我不能做的是我想把这些字符串放在一个循环中并将它们写入一个列表视图,这样subject1应该在item1中,而date1应该像这样在subitem1中

Subject1

Date1

------

Subject2

Date2

------

这就是列表视图的样子

任何人都可以帮我解决这个问题吗?

4

2 回答 2

0

请注意,它ArrayAdaper是专为仅包含一个的项目而设计的TextView从文档

由任意对象数组支持的具体 BaseAdapter。默认情况下,此类期望提供的资源 id 引用单个 TextView

考虑子类化ArrayAdapterdocs)并覆盖它的getView方法。

于 2013-04-12T15:14:16.113 回答
0

您需要创建一个自定义项以按照您想要的方式从您的对象ArrayAdapter中填充一个。ListView

这种技术的优点是您获得了一种视图回收机制,该机制将回收Views您的内部ListView以减少内存消耗。

简而言之,您必须:

1.创建一个代表单行数据的对象。

2.创建ArrayList这些对象中的一个。

3.创建一个包含 ListView 的布局或使用代码将 ListView 添加到您的主布局。

4.创建单行布局。

5.创建一个ViewHolder从 的角度代表数据行的视觉方面Views

6.创建一个自定义ArrayAdapter,将根据您的需要填充行,在其中您将覆盖该getView方法并使用position您收到的当前行的参数View来指示该行index

7.最后把这个分配ArrayAdapter给你的ListViewin onCreate

通过阅读我写的这篇博文,您可以了解如何实现这一点:

创建自定义 ArrayAdapter

于 2013-04-12T15:17:19.927 回答