国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android自定義ListView實現(xiàn)仿QQ可拖拽列表功能

2019-12-12 05:27:36
字體:
供稿:網(wǎng)友

我們大致的思路,其實是這樣子的,也是我的設(shè)想,我們可以先去實現(xiàn)一個簡單的ListView的數(shù)據(jù),但是他的Adapter,我們可以用系統(tǒng)封裝好的,然后傳遞進去一個實體類,最后自定義一個listview去操作,所以我們先把準備的工作做好,比如?

list_item.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"><ImageViewandroid:id="@+id/iv_logo"android:layout_width="50dp"android:layout_height="50dp"android:layout_alignParentLeft="true"android:layout_centerInParent="true"android:layout_marginLeft="10dp"/><TextViewandroid:id="@+id/textView"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:layout_marginLeft="10dp"android:layout_toRightOf="@id/iv_logo"/></RelativeLayout>

這就只有一個頭像和一句話了,然后我們把實體類也給寫完了

DragBean

package com.liuguilin.draglistviewsample.entity;/** 項目名: DragListViewSample * 包名: com.liuguilin.draglistviewsample.entity* 文件名: DragBean* 創(chuàng)建者: LGL* 創(chuàng)建時間: 2016/8/29 22:49* 描述: 實體類*/public class DragBean {private int ivId;private String text;public DragBean() {}public DragBean(int ivId, String text) {this.ivId = ivId;this.text = text;}public int getIvId() {return ivId;}public String getText() {return text;}}

ok,其實很簡單,id是圖片,然后是文本,這樣我們就可以來實現(xiàn)一個Adapter了,這里我用的是ArrayAdapter這樣能讓我們插入和刪除很輕松

DragAdapter

package com.liuguilin.draglistviewsample.adapter;/** 項目名: DragListViewSample * 包名: com.liuguilin.draglistviewsample.adapter* 文件名: DragAdapter* 創(chuàng)建者: LGL* 創(chuàng)建時間: 2016/8/29 22:41* 描述: 拖拽列表的數(shù)據(jù)源*/import android.content.Context;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.ImageView;import android.widget.TextView;import com.liuguilin.draglistviewsample.R;import com.liuguilin.draglistviewsample.entity.DragBean;import java.util.List;public class DragAdapter extends ArrayAdapter<DragBean> {/*** 構(gòu)造方法** @param context* @param mList*/public DragAdapter(Context context, List<DragBean> mList) {super(context, 0, mList);}/*** 實現(xiàn)View** @param position* @param convertView* @param parent* @return*/@Overridepublic View getView(int position, View convertView, ViewGroup parent) {View view;ViewHolder viewHolder;if (convertView == null) {view = View.inflate(getContext(), R.layout.list_item, null);viewHolder = new ViewHolder();viewHolder.imageView = (ImageView) view.findViewById(R.id.iv_logo);viewHolder.textView = (TextView) view.findViewById(R.id.textView);view.setTag(viewHolder);} else {view = convertView;viewHolder = (ViewHolder) view.getTag();}viewHolder.imageView.setImageResource(getItem(position).getIvId());viewHolder.textView.setText(getItem(position).getText());return view;}/*** 緩存*/static class ViewHolder {ImageView imageView;TextView textView;}}

好的,其實到這里,他就是一個最普通的ListView了,我們給他填充點數(shù)據(jù)

MainActivity

package com.liuguilin.draglistviewsample;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import com.liuguilin.draglistviewsample.adapter.DragAdapter;import com.liuguilin.draglistviewsample.entity.DragBean;import com.liuguilin.draglistviewsample.view.DragListView;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {//列表private DragListView mListView;//數(shù)據(jù)private List<DragBean> mList = new ArrayList<>();//數(shù)據(jù)源private DragAdapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();}/*** 初始化View*/private void initView() {mListView = (DragListView) findViewById(R.id.mListView);//新增

主站蜘蛛池模板:
保康县|
贡嘎县|
托克托县|
贺州市|
腾冲县|
通州区|
富阳市|
武强县|
咸丰县|
榆树市|
夏津县|
西吉县|
西昌市|
舟曲县|
建平县|
得荣县|
惠安县|
宿松县|
嘉义县|
巫溪县|
五华县|
安溪县|
谢通门县|
精河县|
岚皋县|
长垣县|
祁门县|
布拖县|
长寿区|
南岸区|
佛冈县|
冷水江市|
曲麻莱县|
龙山县|
丰都县|
阿克|
姜堰市|
紫阳县|
四子王旗|
大渡口区|
上虞市|