android vérifiable listview
Je suis tout à fait nouvelle dans le développement d'applications android.
J'ai créé ma propre liste de l'adaptateur comme indiqué ci-dessous et je veux que cette liste soit vérifiable. Que dois-je faire pour que ma liste contient une case à cocher pour chaque ligne?
public class listAvtivity extends ListActivity {
private LayoutInflater mInflater;
private Vector<RowData> data;
RowData rd;
static final String[] title = new String[] {
"*New*Apple iPad Wi-Fi (16GB)", "7 Touch Tablet -2GB Google Android",
"Apple iPad Wi-Fi (16GB) Rarely Used ","Apple iPad Wi-Fi (16GB) AppleCase" };
static final String[] detail = new String[] {
"1h 37m Shipping: $10.00","1h 39m Shipping: Free","58m 6s Shipping:$10.00","59m 30s Shipping: $10.95" };
//private Integer[] imgid = {
//R.drawable.bsfimg,R.drawable.bsfimg4,R.drawable.bsfimg2,
//R.drawable.bsfimg5
//};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mInflater = (LayoutInflater) getSystemService(
Activity.LAYOUT_INFLATER_SERVICE);
data = new Vector<RowData>();
for(int i=0;i<title.length;i++){
try {
rd = new RowData(i,title[i],detail[i]);
} catch (ParseException e) {
e.printStackTrace();
}
data.add(rd);
}
CustomAdapter adapter = new CustomAdapter(this, R.layout.list,
R.id.title, data);
setListAdapter(adapter);
getListView().setTextFilterEnabled(true);
}
public void onListItemClick(ListView parent, View v, int position,
long id) {
Toast.makeText(getApplicationContext(), "You have selected "
+(position+1)+"th item", Toast.LENGTH_SHORT).show();
}
private class RowData {
protected int mId;
protected String mTitle;
protected String mDetail;
RowData(int id,String title,String detail){
mId=id;
mTitle = title;
mDetail=detail;
}
@Override
public String toString() {
return mId+" "+mTitle+" "+mDetail;
}
}
private class CustomAdapter extends ArrayAdapter<RowData> {
public CustomAdapter(Context context, int resource,
int textViewResourceId, List<RowData> objects) {
super(context, resource, textViewResourceId, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
TextView title = null;
TextView detail = null;
//ImageView i11=null;
RowData rowData= getItem(position);
if(null == convertView){
convertView = mInflater.inflate(R.layout.list, null);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
}
holder = (ViewHolder) convertView.getTag();
title = holder.gettitle();
itle.setText(rowData.mTitle);
detail = holder.getdetail();
detail.setText(rowData.mDetail);
//i11=holder.getImage();
//i11.setImageResource(imgid[rowData.mId]);
return convertView;
}
private class ViewHolder {
private View mRow;
private TextView title = null;
private TextView detail = null;
//private ImageView i11=null;
public ViewHolder(View row) {
mRow = row;
}
public TextView gettitle() {
if(null == title){
title = (TextView) mRow.findViewById(R.id.title);
}
return title;
}
public TextView getdetail() {
if(null == detail){
detail = (TextView) mRow.findViewById(R.id.detail);
}
return detail;
}
//public ImageView getImage() {
// if(null == i11){
// i11 = (ImageView) mRow.findViewById(R.id.img);
// }
//return i11;
//}
}
}
}
InformationsquelleAutor Omran | 2011-05-09
Vous devez vous connecter pour publier un commentaire.
J'ai aimé Carlos Sessa solution de son livre "50 Android hacks".
mon activity_favorites.xml ressemble à ceci:
Mon FavoritesActivity.java ressemble à ceci:
Mon ListView adaptateur (FavoritesPackageArrayAdapter.java) est assez simple:
Afin d'avoir la liste des éléments vérifiables, votre point de vue pour mettre en œuvre Vérifiables de l'interface.
Mon PackageView.java ressemble:
Et enfin xml de mise en page de chaque élément de la liste (favorites_package.xml):
Si vous voulez avoir réels case à cocher dans votre mise en page xml devrait ressembler à quelque chose comme:
Si vous avez laissé la case cliquable, vous ne pouvez le vérifier en cliquant sur la case elle-même.
Aussi, ne pas faire à votre disposition cliquable, pour une raison quelconque, il ne fonctionne pas avec Vérifiables de l'interface.
Regardez cet exemple de code
http://www.androidpeople.com/android-listview-multiple-choice-example
--- Edit --
Vous n'avez pas de poster vos fichiers xml. Pour avoir une liste personnalisée en ligne je l'ai fait de cette façon. J'ai d'abord setcontentview qui contient mon listview dans votre code java.
Alors votre list_main.xml le fichier doit contenir une liste
Après des données de jeu de carte
Pour obtenir une liste personnalisée élément, créer un list_item.xml le fichier qui contient votre de ligne personnalisée. Vous pouvez mettre linearlayouts, des images ou des cases à cocher ici.
Puis obtenir votre listview
Vous pouvez définir onitemclick écouteur ici
Puis dans votre coutume adaptateur fichier, vous pouvez mettre en œuvre getview fonction
Je ne pouvais pas regarder votre code et de dire ce qui est mal, mais c'est la façon correcte de mise en œuvre de la coutume de lignes pour listview dans android.