Pythontr

husonet | Tarih: 04.10.2015

Android ile Liste İçine Ikon Yerleştirmek

Sol menü içerisindeki listeye ikonların eklenmesi

Listede mevcut olan her itema bir ikon eklemek istersek main activity sınıfımız içersinde aşağıdaki kodları yazmalıyız.
Integer[] imageIds = {
R.drawable.ikon1,
R.drawable.ikon2,
R.drawable.ikon3,
R.drawable.ikon4
};

Listemizde kaç eleman varsa o kadar ikonumuzu tanımladık ve aşağıda bu ikonları listeye ekliyoruz.
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTitle = mDrawerTitle = getTitle();
mDrawerItmes = getResources().getStringArray(R.array.drawer_titles);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
mDrawerList.setAdapter(new CustomList(this, mDrawerItmes, imageIds));
}


CustomList sınıfımız aşağıdak gibidir:

import android.app.Activity;
import android.database.DataSetObserver;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.TextView;

public class CustomList extends ArrayAdapter<String> {

private final Activity context;
private final String[] itmes;
private final Integer[] imageIds;

public CustomList(Activity context, String[] itmes, Integer[] imageIds) {
super(context, R.layout.drawer_list_item, itmes);
this.context = context;
this.itmes = itmes;
this.imageIds = imageIds;
}

@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();

View rowView= inflater.inflate(R.layout.drawer_list_item, null, true);
TextView txtTitle = (TextView) rowView.findViewById(android.R.id.text1);
txtTitle.setText(itmes[position]);

ImageView imageView = (ImageView) rowView.findViewById(android.R.id.icon);
imageView.setImageResource(imageIds[position]);

return rowView;
}

}