Android ListView,从具有多个元素的行中检索特定元素(View)

时间:2013-07-30 22:37:23

标签: android sqlite listview view

是否可以从ListView中的行中的特定 TextView元素中检索文本,其中每行包含其具有4个不同TextView的拥有 Layout.xml?一行看起来像 - > | TextView1 TextView2 TextView3 TextView4 |。我的ListView的行数取决于填充ListView的SQLite数据库的行数。例如:如果我单击第1行,我希望TextView1用于行,如果我单击第2行,我希望TextView1用于特定行。

我希望你明白,英语不是我的母语。

2 个答案:

答案 0 :(得分:1)

我不确定我是否理解你,但我认为你想在ListView中添加AdapterView.OnItemClickListener。实现只有一个方法的侦听器:

onItemClick(AdapterView<?> parent, View view, int position, long id)

在您的情况下,view将是用户点击的行,item是适配器中行的位置。

要检索行的文本,首先应该使用类似

的TextView(如果您的视图是容器)
 TextView textView = (TextView) view.findViewById(R.id.your_textview_id);

然后通过调用textView.getText()

检索文本

希望有所帮助

答案 1 :(得分:0)

如果您正在使用基于'BaseAdapter'的适配器,则需要为要在getView()方法中检索其内容的每个TextView添加onClickListener:

private class ViewHolder 
{
    TextView Tv1;
    TextView Tv2;
}
public View getView(final int position, View convertView, ViewGroup parent) {

    ViewHolder holder;
    if (convertView==null)
    {
        holder=new ViewHolder();
        convertView = inflater.inflate(R.layout.yourXmlSource, null);
        holder.tv1 = (TextView)convertView.findViewById(R.id.tv1);
        holder.tv2 = (TextView)convertView.findViewById(R.id.tv2);
    }

    else
    {
        holder = (ViewHolder) convertView.getTag();
    }

//Code to fill your Rows from the database here


    holder.tv1.setOnClickListener(new OnClickListener() 
    {

        @Override
        public void onClick(View v) 
        {

        Toast toast = Toast.makeText(v.getConext(), (TextView)v, Toast.LENGTH_LONG);
toast.show();

        }
    });
}