我如何在列表视图中设置文本视图的标签值

时间:2013-01-29 16:56:09

标签: android listview tags textview

我有一个包含多列的列表视图,其中每行有几个文本视图。使用orientation="vertical"在每行中包含两个textview。

在xml文件中,我可以设置每个textview的标记。但是,每个textview的这个标记在每一行中都是相同的。

如何设置每个textview的标记? id会出现同样的问题。在第一行,没关系。问题出在以下行中。

我用一个例子放了一个图像。

enter image description here

   public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
    ViewGroup rootView = (ViewGroup)inflater.inflate(R.layout.fragment_screen_slide_page, container,false);
    lv = (ListView)rootView.findViewById(android.R.id.list);

    ArrayList<HashMap<String, String>> mylistData =
            new ArrayList<HashMap<String, String>>();

    String[] columnTags = new String[] {"hour","col1", "col2", "col3","col4", "col5", "col6","col7", "col8", "col9","col10", "col11", "col12","col13","col14"};

    int[] columnIds = new int[] {R.id.tv_list_item1,R.id.tv_listRow_item1, R.id.tv_listRow_item2, R.id.tv_listRow_item3,R.id.tv_listRow_item4, R.id.tv_listRow_item5, R.id.tv_listRow_item6,R.id.tv_listRow_item7, R.id.tv_listRow_item8, R.id.tv_listRow_item9,R.id.tv_listRow_item10, R.id.tv_listRow_item11, R.id.tv_listRow_item12,R.id.tv_listRow_item13, R.id.tv_listRow_item14};
    for(int i=0; i<24; i++)
    {
       HashMap<String,String> map = new HashMap<String, String>();
        for(int j=0; j<15; j++)
         {
      if(j==0){
    map.put("hour", "0"+i+":00");
    if(i<10){
        map.put("hour", "0"+i+":00");   
    }
    else
        map.put("hour", i+":00");
}
else if(j>0){
    map.put(columnTags[j], "row”+i+”col"+j);
}
   }
   mylistData.add(map);
   }
    SimpleAdapter arrayAdapter =
        new SimpleAdapter(getActivity(), mylistData, R.layout.sechedule_list_row,
                      columnTags , columnIds);
    lv.setAdapter(arrayAdapter);

2 个答案:

答案 0 :(得分:0)

这个例子对我很有帮助,我认为http://www.technotalkative.com/android-multi-column-listview/

答案 1 :(得分:0)

您必须创建自己的自定义适配器,然后在getView中为每个文本视图设置标记和ID。

以下是如何使用getView的示例 android - custom ListView, getView method