繁体   English   中英

如何使用自定义适配器从列表视图上单击的项目中获取文本

[英]How get text from item clicked on a List view with a Custom Adapter

我正在尝试获取所选项目的文本的值,但它不起作用。

适配器:

public class DataMyAdapter extends BaseAdapter {

private ArrayList<Data> listaData;
private LayoutInflater linflater;

public DataMyAdapter(Context context, ArrayList<Data> listaData) {
    this.linflater = LayoutInflater.from(context);
    this.listaData = listaData;
}

@Override
public int getCount() {
    return listaData.size();
}

@Override
public Object getItem(int position) {
    return listaData.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ContenedorView contenedor = null;
    if (convertView == null){
        convertView = linflater.inflate(R.layout.customadapterlayout, null);

        contenedor = new ContenedorView();
        contenedor.nombre = (TextView) convertView.findViewById(R.id.nombreTextView);
        contenedor.realizado = (CheckBox) convertView.findViewById(R.id.realizadoCheckBox);

        convertView.setTag(contenedor);
    }else {
        contenedor = (ContenedorView) convertView.getTag();
    }

    Data datos = (Data) getItem(position);
    contenedor.nombre.setText(datos.getNombre());
    contenedor.realizado.setChecked(datos.getCheck());

    return convertView;
}

class ContenedorView{
    TextView nombre;
    CheckBox realizado;
}

}

MainActivity中的实现:

elementosList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
            elementoSeleccionado = parent.getItemAtPosition(position).toString();
            return false;
        }
    });

具体行:elementoSeleccionado = parent.getItemAtPosition(position).toString(); 在Long Value给我,例如:com.package.app.Data@423316e8

elementoSeleccionado = parent.getItemAtPosition(position).toString();

返回Data.toString()com.package.app.Data@423316e8 ),这不是您想要的。 你想要的是

Data data = (Data) parent.getItemAtPosition(position)
elementoSeleccionado = data.getNombre();

或您需要的吸气剂

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM