SO Básicamente, necesito un poco de ayuda o algunas sugerencias con el problema que tengo. Estoy rellenando mi vista de lista desde la base de datos y necesito verificar cuándo estoy creando mi lista de lista si la identificación del artículo en position
es la misma que la identificación de otra tabla en mi base de datos. Si es así, puede hacer clic en ese elemento; si no, quiero que lo desactive, pero toda la información que encontré sobre cómo hacerlo ... realmente no puedo entender cómo hacerlo.Android deshabilitar elementos listview
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
//For more information look at the bottom of file.
public class LazyAdapter extends BaseAdapter {
private Activity activity;
private String[] data;
private ArrayList<String> name;
private ArrayList<String> info;
private static LayoutInflater inflater=null;
public ImageLoader imageLoader;
private Bitmap b;
public LazyAdapter(Activity a, Bitmap d, ArrayList<String> names, ArrayList<String> information) {
activity = a;
b=d;
name=names;
info = information;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
imageLoader=new ImageLoader(activity.getApplicationContext());
}
public int getCount() {
return name.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public static class ViewHolder{
public TextView name,info;
public ImageView image;
}
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
ViewHolder holder;
if(convertView==null){
vi = inflater.inflate(R.layout.item, null);
holder=new ViewHolder();
holder.name=(TextView)vi.findViewById(R.id.name);
holder.info=(TextView)vi.findViewById(R.id.info);
holder.image=(ImageView)vi.findViewById(R.id.image);
vi.setTag(holder);
Log.v("Position","Position : "+position);
}
else
holder=(ViewHolder)vi.getTag();
holder.name.setText(name.get(position));
holder.info.setText(info.get(info.size()-1));
//Here I must do a black magic and get the images if user had 'em.
holder.image.setImageBitmap(b);
//holder.image.setTag(data[position]);
//imageLoader.DisplayImage(data[position], activity, holder.image);
// Black magic over.
return vi;
}
}
¿Alguna idea o sugerencia de cómo hacer eso?
¿Qué estás usando actualmente? ¿Ha definido el adaptador personalizado para la vista de lista? –
Sí, en realidad estoy usando un adaptador personalizado. déjame poner el código –
puedes hacer esto, en el método getview, poner en una condición if y obtener el id del ítem, al mismo tiempo creo que tienes otra colección donde tienes la lista de identificadores contra los cuales verificar, o si no haces una seleccione la consulta con el ID, si el recuento es 1 que significa su presente, de lo contrario, si está presente, establezca el método setEnabled de la vista en true else false. (haz esto al hacer clic en el elemento de la vista de lista) –