3
   listView.setOnItemClickListener(new OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {


                if(position == 1 ){
                    Toast.makeText(getApplicationContext(),
                    "Click ListItem Number " + position,
 Toast.LENGTH_LONG)
                    .show();
                }else{
                     }

我有一个来自自定义适配器的列表视图,它工作正常,当我单击一个项目时,它会获得正确的位置。我如何从位置中提取字段视图文本。IE

 holder.txtDesc = (TextView) convertView.findViewById(R.id.desc);

我想将 desc 字段从我单击的位置列表中定位出来。我知道您可以使用哈希映射,但是有没有办法仅通过列表位置来定位项目单击时的字段视图?我知道这是“webby”,但我确信 java 具有相同的灵活性

  public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder = null;
    RowItem rowItem = getItem(position);

    LayoutInflater mInflater = (LayoutInflater) context
            .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.list_item, null);
        holder = new ViewHolder();
        holder.txtDesc = (TextView) convertView.findViewById(R.id.desc);
        holder.txtTitle = (TextView) convertView.findViewById(R.id.title);
        convertView.setTag(holder);
    } else
        holder = (ViewHolder) convertView.getTag();

    holder.txtDesc.setText(rowItem.getDesc());
    holder.txtTitle.setText(rowItem.getTitle());


    return convertView;
}       
4

3 回答 3

2

我如何从位置中提取字段视图文本。IE

holder.txtDesc = (TextView) convertView.findViewById(R.id.desc);

在里面onItemClick()你可以使用:

TextView textview = (TextView) view.findViewById(R.id.desc);
// Now use textView.getText().toString() to get the description

由于convertView来自适配器的对象与侦听器中的对象相同view

于 2013-04-05T20:20:55.407 回答
0

你不能打电话adapter.getItem(position)吗?

于 2013-04-05T20:16:08.183 回答
0
  1. 如果您只需要文本当前项目使用 BaseAdapter ,您可以通过以下方式获取文本:

    (字符串)适配器.getItem(位置);

  2. 如果您需要 TextView 对象当前项目,您可以通过以下方式获取 TextView: listView.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView parent, View view, int position, long id) {
    ViewHolder holder = (ViewHolder)view;
    TextView txtDescTV = holder.txtDesc;
    }
    }

于 2013-04-05T21:01:03.637 回答