我寫這樣的文章都是為了快速迭代,所以都寫的比較簡單,諒解
此類支持任意Model對象,該對象需要重寫toString()
簡單的一個Item布局item_simple_list.xml
附件是需要的工具類,快速生成一個ListView的代碼,可能需要Volley,如報錯,可以注釋掉不必要的代碼,不影響本例。
使用:
KeyValue是個Model對象,重寫了toString(),可以是任何對象
此類支持任意Model對象,該對象需要重寫toString()

import java.util.List; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.Gravity; import android.view.View; import android.view.Window; import android.view.WindowManager; import android.widget.AdapterView; import android.widget.ListView; import com.mb.bgfitting.CommonAdapter; import com.mb.bgfitting.ViewHolder; import com.mb.bgfitting.app.R; /** * * @author pythoner * */ public class SimpleListDialog<T> extends Dialog { private Context context; private ListView listView; private List<T> beans; private CommonAdapter<T> adapter; public SimpleListDialog(Context context,List<T> beans) { this(context, R.style.Theme_Dialog_NoTitle,beans); // TODO Auto-generated constructor stub } public SimpleListDialog(Context context, int theme,List<T> beans) { super(context, theme); // TODO Auto-generated constructor stub this.context = context; this.beans = beans; init(); } private void init() { this.setCanceledOnTouchOutside(true); this.setCancelable(true); } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.dialog_simple_list); initViews(); // initValues(); } private void initViews() { if(beans==null){ return; } listView=(ListView)findViewById(R.id.listView); listView.setAdapter(adapter = new CommonAdapter<T>( context, beans, R.layout.item_simple_list){ @Override public void setValues(ViewHolder helper, T item, int position) { // TODO Auto-generated method stub helper.setText(R.id.item_0, item.toString()); } }); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View v, int position, long id) { // TODO Auto-generated method stub T instance=beans.get(position); if(onItemClickListener!=null){ onItemClickListener.onItemClick(v, instance,position); } dismiss(); } }); } private void initValues() { // 不能寫在init()中 Window window = getWindow(); WindowManager.LayoutParams lp = window.getAttributes(); DisplayMetrics dm = context.getResources().getDisplayMetrics(); lp.width = dm.widthPixels; lp.gravity = Gravity.BOTTOM; window.setAttributes(lp); } private OnItemClickListener<T> onItemClickListener; public interface OnItemClickListener<T> { public void onItemClick(View v,T item,int position); } public void setOnItemClickListener(OnItemClickListener<T> onItemClickListener) { this.onItemClickListener = onItemClickListener; } }
簡單的一個Item布局item_simple_list.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/item_0" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="16dp" android:paddingBottom="16dp" android:gravity="center" android:textColor="@color/base_text_black" android:textSize="@dimen/font_xbig" android:singleLine="true" /> </RelativeLayout>
附件是需要的工具類,快速生成一個ListView的代碼,可能需要Volley,如報錯,可以注釋掉不必要的代碼,不影響本例。
使用:
List<KeyValue> list=new ArrayList<KeyValue>(); list.add(new KeyValue("0","繼續(xù)挑選")); list.add(new KeyValue("1","立即購買")); list.add(new KeyValue("2","配貨投遞")); list.add(new KeyValue("3","立即試衣")); SimpleListDialog<KeyValue> d=new SimpleListDialog<KeyValue>(context, list); d.setOnItemClickListener(new SimpleListDialog.OnItemClickListener<KeyValue>() { @Override public void onItemClick(View v, KeyValue item, int position) { // TODO Auto-generated method stub } }); d.show();
KeyValue是個Model對象,重寫了toString(),可以是任何對象
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
