一个listview行中有多行文本?

时间:2012-01-03 22:14:36

标签: java android listview layout

我希望能够在listview中每行显示两行文本。 enter image description here

在每个标题下,我想显示日期和作者姓名的另一行文字。

    /** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);

    titleArray = new ArrayList<String>();
    titleArrayAdapter = new ArrayAdapter<String>(this, R.layout.list_item,
        R.id.itemName, titleArray);

}

public void getThreads() throws IOException {
    Thread getThreadsThread = new Thread() {
        public void run() {
                Document doc = null;
                try {
                    doc = Jsoup.connect(Constants.FORUM).get();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                Elements threads = doc.select(".topic_title");
                for (Element thread : threads) {
                    threadTitle = thread.text();
                    titleArray.add(threadTitle);
                }
        } 
    };
    getThreadsThread.start();
    try {
        getThreadsThread.join();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    mHandler.sendEmptyMessage(0);
}

final Handler mHandler = new Handler(){ 
    public void handleMessage (Message  msg) {
        switch (msg.what) {
        case 0:
            MainActivity.this.runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    setListAdapter(titleArrayAdapter);
                }
            });
            break;
        }
    } 
}; 

您如何建议我在行中添加另一行?现在我只想在第二行添加“作者”和“日期”,我只需要一个占位符,直到我有代码来解析相应的字段。

3 个答案:

答案 0 :(得分:2)

喜欢这个basic example

答案 1 :(得分:1)

我建议使用自定义ListAdapter扩展BaseAdapter。

将数据存储在ArrayList中,并创建一个新的GetView()来处理XML-Layout中的数据。

答案 2 :(得分:1)

  

您如何建议我在行中添加另一行?

TextView添加第二个res/layout/list_item.xml,其大小和位置可以放在任何位置。

此外,您需要继承ArrayAdapter并覆盖getView()ArrayAdapter只知道每行如何处理一个TextView - 如果你想要的更多,你需要自己处理其余部分。