В этом уроке я собираюсь показать вам, как создать Android ListView с изображениями и текстом. Вы узнаете, как загрузить изображение из ресурса и как установить текст в TextView . Вот скриншот готового ListView.
Пример списка Android на Samsung Galaxy Y s5360
Класс ItemDetails поможет нам установить и получить данные элемента:
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package com.jsupport.listviewimages;public class ItemDetails {public String getName() {return name;}public void setName(String name) {this.name = name;}public String getItemDescription() {return itemDescription;}public void setItemDescription(String itemDescription) {this.itemDescription = itemDescription;}public String getPrice() {return price;}public void setPrice(String price) {this.price = price;}public int getImageNumber() {return imageNumber;}public void setImageNumber(int imageNumber) {this.imageNumber = imageNumber;}private String name ;private String itemDescription;private String price;private int imageNumber;} |
ItemListBaseAdapter
Который продлен от BaseAdapter и устанавливает детали элемента и изображение
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
package com.jsupport.listviewimages;import java.util.ArrayList;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;public class ItemListBaseAdapter extends BaseAdapter { private static ArrayList<ItemDetails> itemDetailsrrayList; private Integer[] imgid = { R.drawable.p1, R.drawable.bb2, R.drawable.p2, R.drawable.bb5, R.drawable.bb6, R.drawable.d1 }; private LayoutInflater l_Inflater; public ItemListBaseAdapter(Context context, ArrayList<ItemDetails> results) { itemDetailsrrayList = results; l_Inflater = LayoutInflater.from(context); } public int getCount() { return itemDetailsrrayList.size(); } public Object getItem(int position) { return itemDetailsrrayList.get(position); } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { convertView = l_Inflater.inflate(R.layout.item_details_view, null); holder = new ViewHolder(); holder.txt_itemName = (TextView) convertView.findViewById(R.id.name); holder.txt_itemDescription = (TextView) convertView.findViewById(R.id.itemDescription); holder.txt_itemPrice = (TextView) convertView.findViewById(R.id.price); holder.itemImage = (ImageView) convertView.findViewById(R.id.photo); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.txt_itemName.setText(itemDetailsrrayList.get(position).getName()); holder.txt_itemDescription.setText(itemDetailsrrayList.get(position).getItemDescription()); holder.txt_itemPrice.setText(itemDetailsrrayList.get(position).getPrice()); holder.itemImage.setImageResource(imgid[itemDetailsrrayList.get(position).getImageNumber() - 1]); return convertView; } static class ViewHolder { TextView txt_itemName; TextView txt_itemDescription; TextView txt_itemPrice; ImageView itemImage; }} |
ListViewImagesActivity
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
package com.jsupport.listviewimages;import java.util.ArrayList;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import android.widget.Toast;import android.widget.AdapterView.OnItemClickListener;public class ListViewImagesActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);ArrayList<ItemDetails> image_details = GetSearchResults();final ListView lv1 = (ListView) findViewById(R.id.listV_main);lv1.setAdapter(new ItemListBaseAdapter(this, image_details));lv1.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> a, View v, int position, long id) {Object o = lv1.getItemAtPosition(position);ItemDetails obj_itemDetails = (ItemDetails)o;Toast.makeText(ListViewImagesActivity.this, 'You have chosen : ' + ' ' + obj_itemDetails.getName(), Toast.LENGTH_LONG).show();} });}private ArrayList<ItemDetails> GetSearchResults(){ArrayList<ItemDetails> results = new ArrayList<ItemDetails>();ItemDetails item_details = new ItemDetails();item_details.setName('Pizza');item_details.setItemDescription('Spicy Chiken Pizza');item_details.setPrice('RS 310.00');item_details.setImageNumber(1);results.add(item_details);item_details = new ItemDetails();item_details.setName('Burger');item_details.setItemDescription('Beef Burger');item_details.setPrice('RS 350.00');item_details.setImageNumber(2);results.add(item_details);item_details = new ItemDetails();item_details.setName('Pizza');item_details.setItemDescription('Chiken Pizza');item_details.setPrice('RS 250.00');item_details.setImageNumber(3);results.add(item_details);item_details = new ItemDetails();item_details.setName('Burger');item_details.setItemDescription('Chicken Burger');item_details.setPrice('RS 350.00');item_details.setImageNumber(4);results.add(item_details);item_details = new ItemDetails();item_details.setName('Burger');item_details.setItemDescription('Fish Burger');item_details.setPrice('RS 310.00');item_details.setImageNumber(5);results.add(item_details);item_details = new ItemDetails();item_details.setName('Mango');item_details.setItemDescription('Mango Juice');item_details.setPrice('RS 250.00');item_details.setImageNumber(6);results.add(item_details);return results;}} |
Скачать полный проект: Android ListView
Приятного кодирования и не забудьте поделиться!
Ссылка: пример Android ListView с изображением и текстом от нашего партнера по JCG Чатуры Вийесингхе в блоге поддержки Java на Шри-Ланке .
