W zasadzie potrzebuję pomocy lub sugestii z problemem, który mam. Zapełniam widok listy z bazy danych i muszę sprawdzić, kiedy tworzę widok listy, jeśli identyfikator elementu na position
jest taki sam jak identyfikator z innej tabeli w mojej bazie danych. Jeśli tak, to możesz kliknąć ten element, jeśli nie chcę, aby go wyłączyć, ale wszystkie informacje, które znalazłem o tym, jak to zrobić ... Nie mogę naprawdę zrozumieć, jak to zrobić.Android wyłącza wyświetlanie list przedmiotów
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;
}
}
Wszelkie pomysły i sugestie, jak to zrobić?
co używasz obecnie? Czy zdefiniowałeś niestandardowy adapter dla widoku list? –
Tak, faktycznie używam niestandardowego adaptera. pozwól mi umieścić kod –
można to zrobić, w metodzie getview, umieścić w warunku if i uzyskać identyfikator przedmiotu, jednocześnie wierzę, że masz inną kolekcję, gdzie masz listę identyfikatorów, które można sprawdzić, lub zrobić wybierz zapytanie z identyfikatorem, jeśli licznik wynosi 1, co oznacza, że jest obecny, inaczej nie, jeśli jest obecny, ustaw metodę setEnabled widoku na wartość true, false. (zrób to na kliknięciu pozycji listy) –