簡體   English   中英

如何添加帶有子項的Listview

[英]How to add a Listview with SubItems

我想將數據顯示在字符串數組中,作為listview的Subitems。

我到底該怎么做?

這是您要達到的目標嗎?

這是我使用片段的ap代碼的一部分。 一個片段是列表片段。

import android.widget.ArrayAdapter;
import android.widget.ListView;

public class Category List extends ListFragment {

final static String[] CATEGORIES = {"String1","String2",
    "String3","String4"};

@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(getActivity(),
        android.R.layout.simple_list_item_activated_1,
        CATEGORIES));

希望能幫助到你。

從Android開發站點下載api演示,或打開SDK Manager,並確保已為當前SDK下載了Samples

然后導航到示例文件夾並查看expandable lists 那里有一些完整的示例。

在我的WinXP comp上,文件位於以下位置:

C:\\Program Files\\Android\\android-sdk\\samples\\android-16\\ApiDemos\\src\\com\\example\\android\\apis\\view然后尋找expandable lists.jar文件

您需要創建一個Adapter類。 這是您的解決方案:首先在您的MainActivity類中創建一個私有類,如下所示:

private class Adapter extends BaseAdapter
{
    ArrayList<String> list;
    public Adapter(ArrayList<String> list)
    {
        this.list=list;
    }
    @Override
    public int getCount() 
    {
        return list.size();
    }
    @Override
    public String getItem(int index) 
    {
        return list.get(index);
    }
    @Override
    public long getItemId(int arg0) 
    {
        return 0;
    }
    @Override
    public View getView(int index, View view, ViewGroup arg2) 
    {
        TextView tv_text = new TextView(MainActivity.this);
        tv_text.setText(list.get(index));
        tv_text.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.CENTER_VERTICAL);
        @SuppressWarnings("deprecation")
        AbsListView.LayoutParams params = 
                new AbsListView.LayoutParams(AbsListView.LayoutParams.FILL_PARENT,
                        AbsListView.LayoutParams.FILL_PARENT);
        tv_text.setLayoutParams(params);
        tv_text.setHeight(60);
        tv_text.setTextSize(18);
        return tv_text;
    }       
}

那么您需要將字符串放入ArrayList<String>

ArrayList<String> list = new ArrayList<String>();
for(int i=0;i<yourArray.length(); i++) list.add(yourArray[i]);

之后,您需要創建Adapter類的實例:

Adapter adapter = new Adapter(list);

那么您需要將適配器設置為ListView的主適配器:

ListView lv_list = (ListView)findViewById(R.id.listView1);
lv.setAdapter(adapter);

d

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM