从自定义listadapter中的子视图中获取文本

时间:2011-08-05 23:44:53

标签: android android-listview

我有一个自定义listadapter,每个级别都有图像和文本。我想获得所选级别的文本。

 public View updateView(View view, TreeNodeInfo<Long> treeNodeInfo) {
            final LinearLayout viewLayout = (LinearLayout) view; 
            final TextView descriptionView = (TextView) viewLayout.findViewById(R.id.item);
            final ImageView img = (ImageView)viewLayout.findViewById(R.id.image);




return viewLayout;  }

在我的活动课中,我在列表上有一个clicklistener。

 customlist.setOnItemClickListener(new OnItemClickListener(){
                        @Override
                        public void onItemClick(final AdapterView<?> parent, final View view, final int position, final long id){
                             //dostuff
                        }
                    }); 
  

(TextView的)view.findViewById(R.id.item);

仅返回第一个项目的文本,而不返回列表中的任何其他所选项目。

如何获取所选项目的文本。??

1 个答案:

答案 0 :(得分:1)

使用用于将文本绑定到文本视图的基础数据,更新该数据,并通知ListView数据已更改。

For example
List<Map<String,String> data = new List<Map<String,String>>();
// a bunch of add's

adapter = new SimpleAdapter(Activity.this, data, R.layout.list_item, 
      new String{TEXT1, TEXT2, TEXT3, IMG1}, 
      new int[] {R.id.text1, R.id.text2, R.id.text3, R.id.IMG1});
// set adapter

// ...

onListItemClick(..., int position, long id){
Map<String,String> item = data.get(position);
   item.put(TEXT1, updatedText1String);
   item.put(TEXT2, updatedText2String);
   item.put(TEXT3, updatedText3String);
   listView.notifyDataSetChanged();
}