This is a simple tutorial on how to populate android listview with text and image. For simplicity I use static data in this tutorial, but you can make it dynamic.
Now let's start with a new android project.
Open main.xml and add a listview element as show below (in this, I use default)
The whole MainActivity:
Now let's start with a new android project.
Open main.xml and add a listview element as show below (in this, I use default)
Create list.xml and put it into res/layout/ (main.xml 's folder). This file is used for displaying a row in your listview:
Then, open MainActivity (or as your define). Define some variables, we will use later in our class as shown below:
private LayoutInflater mInflater; private ListView mListView; private VectorVector is used for storing our data. LayoutInflater class is used to instantiate layout XML file into its corresponding View objects. Use getSystemService(String) to retrieve a standard LayoutInflater instance that is already hooked up to the current context and correctly configured for the device you are running on.data;
The whole MainActivity:
private static int[] resID = new int[]{R.drawable.apple, R.drawable.orange}; private LayoutInflater mInflater; private ListView mListView; private VectorDone! Run it and feel your work! :)data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mListView = (ListView)findViewById(R.id.listView1); mInflater = (LayoutInflater)getSystemService(Activity.LAYOUT_INFLATER_SERVICE); data = new Vector (); data.add("Apple"); data.add("Orange"); MyAdapter adapter = new MyAdapter(this, R.layout.list, R.id.textView1, data); mListView.setAdapter(adapter); mListView.setTextFilterEnabled(true); mListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView arg0, View arg1, int position, long id) { Toast.makeText(getApplicationContext(), "You have selected at item: " + position, Toast.LENGTH_LONG).show(); } }); } private class MyAdapter extends ArrayAdapter { public MyAdapter(Context context, int resource, int textViewResourceId, List objects) { super(context, resource, textViewResourceId, objects); } @Override public View getView(int position, View convertView, ViewGroup parent) { MyView mView = null; TextView title = null; ImageView img = null; String rowData = getItem(position); if (convertView == null) { convertView = mInflater.inflate(R.layout.list, null); mView = new MyView(convertView); convertView.setTag(mView); } mView = (MyView)convertView.getTag(); title = mView.getTitle(); title.setText(rowData); img = mView.getImage(); img.setImageResource(resID[position]); return convertView; } private class MyView { private View _row; private TextView _title; private ImageView _imgView; public MyView(View row) { _row = row; } public TextView getTitle() { if (_title == null) _title = (TextView)_row.findViewById(R.id.textView1); return _title; } public ImageView getImage() { if (_imgView == null) _imgView = (ImageView)_row.findViewById(R.id.imageView1); return _imgView; } } }
No comments:
Post a Comment