拆分字符串并将其放在listview中

时间:2013-04-12 14:33:53

标签: android arrays listview split

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

我做了一个简单的活动,其中有一个例子就是我的问题。

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

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

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

依此类推,现在我不能做的是我想把这些字符串放在循环中并将它们写入listview,使得subject1应该在item1中,而date1应该在subitem1中,就像这样

Subject1

Date1

------

Subject2

Date2

------

列表视图应该是这样的

有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:0)

请注意,ArrayAdaper适用于仅包含一个TextView的商品。 From the docs

  

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

考虑对ArrayAdapterdocs)进行子类化并覆盖其getView方法。

答案 1 :(得分:0)

您需要创建自定义ArrayAdapter,以便按照您希望的方式从对象中填充ListView

这项技术的优势在于您获得了一种视图回收机制,可以回收Views内部的ListView以减少内存。

简而言之你必须:

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

2. :创建这些对象的ArrayList

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

4. :创建单行布局。

5。创建ViewHolder,代表Views的支持点,代表数据行的视觉方面。

6。创建一个自定义ArrayAdapter,根据您的需要填充行,其中您将覆盖getView方法并使用position您收到的相关行View的参数,表示行index

7。最后将此ArrayAdapter分配给ListView中的onCreate

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

Create a Custom ArrayAdapter