日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

定制ListView的界面(使用自定义的列表项布局,一边显示水果图片,一边显示水果文字)以及ListView的点击事件

發布時間:2025/4/5 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 定制ListView的界面(使用自定义的列表项布局,一边显示水果图片,一边显示水果文字)以及ListView的点击事件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

只能顯示一段文本的ListView實在是太過單調,我們現在就來對ListView的界面進行定制,讓它可以顯示更加豐富的內容。

首先,我們需要準備好一組水果圖片,分別對應上面提供的每一種水果,待會我們要讓這些水果名稱的旁邊都有一個圖樣。

?

接著定義一個實體類,作為ListView適配器的適配類型。新建類Fruit,代碼如下:

package com.example.administrator.activitydemo;public class Fruit {private String name;private int imageId;public Fruit(String name, int imageId) {this.name = name;this.imageId = imageId;}public String getName() {return name;}public int getImageId() {return imageId;} }

Fruit類中只有兩個字段,name表示水果的名字,imageId表示水果對應圖片的資源id。

然后需要為ListView的子項指定一個我們自定義的布局,在layout目錄下新建fruit_item.xml,代碼如下:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="wrap_content"><ImageViewandroid:id="@+id/iv_name"android:layout_width="wrap_content"android:layout_height="wrap_content" /><TextViewandroid:id="@+id/tv_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_vertical"android:layout_marginLeft="10dp" /></LinearLayout>

在這個布局中,我們定義了一個ImageView用于顯示水果的圖片,又定義了一個TextView用于顯示水果的名稱,并讓TextView在垂直方向上居中顯示。

接下來需要創建一個自定義的適配器,這個適配器繼承自ArrayAdapter,并將泛型指定為Fruit類。新建FruitAdapter,代碼如下所示:

package com.example.administrator.activitydemo;import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView;import java.util.List;public class FruitAdapter extends ArrayAdapter<Fruit> {private int resourceId;private List<Fruit> list;public FruitAdapter(Context context, int textViewResourceId, List<Fruit> list) {super(context, textViewResourceId, list);this.resourceId = textViewResourceId;this.list = list;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {Fruit fruit = list.get(position);//獲取當前項的Fruit實例View view = LayoutInflater.from(getContext()).inflate(resourceId, parent, false);ImageView iv_name = (ImageView) view.findViewById(R.id.iv_name);//初始化圖片TextView tv_name = (TextView) view.findViewById(R.id.tv_name);//初始化文字iv_name.setImageResource(fruit.getImageId());//為ImageView設置圖片tv_name.setText("" + fruit.getName());//為TextView設置文字return view;} }

FruitAdapter重寫了父類的一組構造函數,用于將上下文、ListView子項布局的id和數據都傳遞進來。另外又重寫了getView()方法,這個方法在每個子項被滾動到屏幕內的時候會被調用。在getView()方法中,首先通過get()方法獲得到當前項的Fruit實例,然后使用LayoutInflater來為這個子項加載我們傳入的布局。

MainActivity.java代碼:

package com.example.administrator.activitydemo;import android.app.ProgressDialog; import android.content.DialogInterface; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.Toast;import java.util.ArrayList; import java.util.List;public class MainActivity extends AppCompatActivity {private ListView listView;private String[] data = {"Apple", "Banana", "Orange", "Watermelon","Pear", "Grape", "Pineapple", "Strawberry", "Cherry", "Mango","Apple", "Banana", "Orange", "Watermelon","Pear", "Grape", "Pineapple", "Strawberry", "Cherry", "Mango"};private int[] res = {R.drawable.apple, R.drawable.banana, R.drawable.orange, R.drawable.watermelon,R.drawable.pear, R.drawable.grape, R.drawable.pineapple, R.drawable.strawberry, R.drawable.cherry, R.drawable.mango,R.drawable.apple, R.drawable.banana, R.drawable.orange, R.drawable.watermelon,R.drawable.pear, R.drawable.grape, R.drawable.pineapple, R.drawable.strawberry, R.drawable.cherry, R.drawable.mango};private List<Fruit> fruitList;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();//初始化UI控件initData();//初始化數據}private void initView() {listView = (ListView) findViewById(R.id.listView);}private void initData() {initFruits();//初始化水果數據FruitAdapter adapter = new FruitAdapter(MainActivity.this, R.layout.fruit_item, fruitList);listView.setAdapter(adapter);}private void initFruits() {fruitList = new ArrayList<>();for (int i = 0; i < data.length; i++) {Fruit fruit = new Fruit(data[i], res[i]);fruitList.add(fruit);}}}

運行程序,效果圖:

是不是稍微好看了一點。

ListView的點擊事件:

修改MainActivity.java中的代碼:

package com.example.administrator.activitydemo;import android.app.ProgressDialog; import android.content.DialogInterface; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.Toast;import java.util.ArrayList; import java.util.List;public class MainActivity extends AppCompatActivity {private ListView listView;private String[] data = {"Apple", "Banana", "Orange", "Watermelon","Pear", "Grape", "Pineapple", "Strawberry", "Cherry", "Mango","Apple", "Banana", "Orange", "Watermelon","Pear", "Grape", "Pineapple", "Strawberry", "Cherry", "Mango"};private int[] res = {R.drawable.apple, R.drawable.banana, R.drawable.orange, R.drawable.watermelon,R.drawable.pear, R.drawable.grape, R.drawable.pineapple, R.drawable.strawberry, R.drawable.cherry, R.drawable.mango,R.drawable.apple, R.drawable.banana, R.drawable.orange, R.drawable.watermelon,R.drawable.pear, R.drawable.grape, R.drawable.pineapple, R.drawable.strawberry, R.drawable.cherry, R.drawable.mango};private List<Fruit> fruitList;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();//初始化UI控件initData();//初始化數據}private void initView() {listView = (ListView) findViewById(R.id.listView);}private void initData() {initFruits();//初始化水果數據FruitAdapter adapter = new FruitAdapter(MainActivity.this, R.layout.fruit_item, fruitList);listView.setAdapter(adapter);}private void initFruits() {fruitList = new ArrayList<>();for (int i = 0; i < data.length; i++) {Fruit fruit = new Fruit(data[i], res[i]);fruitList.add(fruit);}}@Overrideprotected void onResume() {super.onResume();listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {Fruit fruit = fruitList.get(position);Toast.makeText(MainActivity.this, "" + fruit.getName(), Toast.LENGTH_SHORT).show();}});} }

效果圖:

總結

以上是生活随笔為你收集整理的定制ListView的界面(使用自定义的列表项布局,一边显示水果图片,一边显示水果文字)以及ListView的点击事件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费高清毛片 | 天堂网一区二区三区 | 女人叫床很黄很污句子 | 日本欧美在线播放 | 国产一级免费看 | 国产在线观看黄 | 动漫av网站 | 精品人妻伦一二三区免费 | 亚洲yy | 亚洲国产视频在线观看 | 亚洲精品视频久久 | 一个色综合网站 | 在线观看av大片 | 老妇女性较大毛片 | 亚洲资源av | 91网站在线播放 | 国产ts三人妖大战直男 | 极品少妇一区二区三区 | 91麻豆成人精品国产 | 欧美变态视频 | 很黄很黄的网站 | 少妇免费直播 | 精品少妇爆乳无码av无码专区 | 精品亚洲乱码一区二区 | 99色影院| 91丨porny丨成人蝌蚪 | 成人国产精品免费观看视频 | 久久精品视频18 | 97视频网站 | 中文字幕人妻一区二区 | 女色婷婷| 亚洲国产精品成人 | javxxx| 亚洲美女一区二区三区 | 国产免费又爽又色又粗视频 | 在线视频一区二区 | 操人在线观看 | 99这里有精品视频 | 亚洲欧美福利 | 久久好色 | 日av中文字幕 | 韩国三级hd中文字幕的背景音乐 | 亚洲免费视频播放 | 亚洲熟妇丰满大屁股熟妇 | 日日操日日干 | 中文理论片 | 337p粉嫩大胆噜噜噜噜69影视 | 色狠狠综合网 | 亚洲女同一区二区 | 国产又大又黄又爽 | 欧美成人影音 | 欧美激情va永久在线播放 | 久久国产精彩视频 | 午夜毛片电影 | 国产精品2区 | 日韩欧美偷拍 | 中文字幕有码在线播放 | 亚洲欧美在线视频 | 在线视频观看国产 | 国产精品久久久久毛片软件 | 亚洲免费影视 | 青青精品 | 亚洲国产欧美自拍 | 韩国av一区二区三区 | 最好看的日本字幕mv视频大全 | 久久中文字幕网 | 超碰人人草人人干 | 老牛嫩草二区三区观影体验 | 一本色道久久88亚洲精品综合 | 男人天堂久久 | 8x8ⅹ8成人免费视频观看 | 亚洲精品激情 | www.日韩 | 亚洲一区二区三区影院 | 国产精品无码久久av | 日本性高潮视频 | 浪潮av色| 天堂av2019| 看免费一级片 | 麻豆免费电影 | 成人在线日韩 | 日本久久精品 | 色涩久久| 天天干夜夜夜夜 | av在线官网 | 波多野结衣不卡 | 亚洲精品欧美激情 | 亚洲日本在线观看视频 | 日本一区二区三区四区五区 | 蜜桃久久精品 | 亚洲美女色视频 | 超级砰砰砰97免费观看最新一期 | 久热免费在线视频 | 国产美女菊爆在线播放APP | 成人毛片18女人毛片 | 亚洲男女一区二区三区 | 97狠狠操 | 91黄在线看| 欧美视频在线观看 |