2013-04-12 30 views
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应该位于子项目1中,像这样

Subject1 

Date1 

------ 

Subject2 

Date2 

------ 

这就是列表视图看起来应该如何的样子

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

+0

提示:如果你之前问这个问题,它可能是编辑您原来的问题的选项。 :) – sulai

+3

是什么样的反应呢?我征服你开始使用JSON进行服务器 - 安卓通信。 – hardartcore

回答

0

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

此技术的优点是您获得了一个Views回收机制,可以在您内部回收Views以便花费更少的内存。

在短期你必须:

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

2.创建这些对象的ArrayList

3.创建一个包含ListView的布局,或者使用代码向您的主布局中添加一个ListView。

4.创建单行布局。

5。创建一个ViewHolder,它将从Views的立场来表示您的数据行的视觉方面。

创建一个自定义ArrayAdapter,将根据您的需要填充的行,它则会覆盖getView方法和使用所获得的corrent行Viewposition参数来表示该行index

7.onCreate最后指定这个ArrayAdapterListView

您可以通过阅读这篇博客我写得到的如何实现这一点的想法:

Create a Custom ArrayAdapter

0

请注意,ArrayAdaper是专为只包含一个单一TextView项目而设计的。 From the docs

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

考虑继承ArrayAdapterdocs),并覆盖其getView方法。

相关问题