先看图片
在这里我把也贴出来。
我只把dialog部分的代码贴出来,其他的代码就不给大家贴了,大家如果有什么其他的问题也可以给我留言
import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.sxyrd.yrdapp.R; import com.sxyrd.yrdapp.adapter.OrderMenuAdapter; import com.sxyrd.yrdapp.domain.PayOrderDetail; import java.util.List; /** * create fly0116 */ public class MenuOrderDialog extends Dialog { public MenuOrderDialog(Context context) { super(context); } public MenuOrderDialog(Context context, int theme) { super(context, theme); } public static class Builder { private Context context; private String title; private String negativeButtonText; private List<PayOrderDetail> datas; private OnClickListener negativeButtonClickListener; private OrderMenuAdapter orderMenuAdapter=null; public Builder(Context context) { this.context = context; } public Builder setDatas(List<PayOrderDetail> datas){ this.datas=datas; return this; } /** * Set the Dialog title from resource * * @param title * @return */ public Builder setTitle(int title) { this.title = (String) context.getText(title); return this; } /** * Set the Dialog title from String * * @param title * @return */ public Builder setTitle(String title) { this.title = title; return this; } public Builder setNegativeButton(int negativeButtonText, OnClickListener listener) { this.negativeButtonText = (String) context .getText(negativeButtonText); this.negativeButtonClickListener = listener; return this; } public Builder setNegativeButton(String negativeButtonText, OnClickListener listener) { this.negativeButtonText = negativeButtonText; this.negativeButtonClickListener = listener; return this; } public MenuOrderDialog create() { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); // instantiate the dialog with the custom Theme final MenuOrderDialog dialog = new MenuOrderDialog(context, R.style.Dialog); View layout = inflater.inflate(R.layout.yrd_menu_order_dialog, null); dialog.addContentView(layout, new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); // set the dialog title ((TextView) layout.findViewById(R.id.title)).setText(title); // set the cancel button if (negativeButtonText != null) { if (negativeButtonClickListener != null) { ((ImageView) layout.findViewById(R.id.close_view)) .setOnClickListener(new View.OnClickListener() { public void onClick(View v) { negativeButtonClickListener.onClick(dialog, DialogInterface.BUTTON_NEGATIVE); } }); } } else { // if no confirm button just set the visibility to GONE layout.findViewById(R.id.close_view).setVisibility( View.GONE); } ListView listView=(ListView)layout.findViewById(R.id.expenses_list); TextView totalView=(TextView)layout.findViewById(R.id.expenses_total_tview); orderMenuAdapter=new OrderMenuAdapter(context,datas); listView.setAdapter(orderMenuAdapter); dialog.setContentView(layout); dialog.setCanceledOnTouchOutside(false);// 设置点击屏幕Dialog不消失 return dialog; } } }
xml文件
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" android:orientation="vertical" android:paddingLeft="10dp" android:paddingRight="10dp"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:background="@color/tou" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/title" style="@style/text_18_ffffff" android:layout_width="match_parent" android:layout_height="50.0dip" android:background="@color/blue" android:gravity="center" android:text="商家:1好点" android:layout_marginTop="5dp" android:layout_marginRight="5dp"/> <ImageView android:id="@+id/close_view" android:layout_width="30dp" android:layout_height="30dp" android:scaleType="centerInside" android:src="@drawable/close" android:layout_alignParentRight="true"/> </RelativeLayout> <LinearLayout android:id="@+id/content" android:layout_width="fill_parent" android:layout_height="350dp" android:gravity="center" android:orientation="vertical" android:layout_marginRight="5dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="40dp" android:gravity="center_vertical" android:background="#d7d6d6"> <TextView android:layout_width="120dp" android:layout_height="wrap_content" android:gravity="center" android:text="产品详情" android:textColor="#8d8d8d" android:textSize="16sp" android:layout_weight="1"/> <TextView android:layout_width="70dp" android:layout_height="wrap_content" android:gravity="center" android:text="单价" android:textColor="#8d8d8d" android:textSize="16sp" /> <TextView android:layout_width="70dp" android:layout_height="wrap_content" android:gravity="center" android:text="数量" android:textColor="#8d8d8d" android:textSize="16sp" /> <TextView android:layout_width="70dp" android:layout_height="wrap_content" android:gravity="center" android:text="总价" android:textColor="#8d8d8d" android:textSize="16sp" /> </LinearLayout> <ListView android:id="@+id/expenses_list" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/my_tab_background_u" android:divider="@color/bg_Gray" android:dividerHeight="0.5dp" /> <TextView android:id="@+id/expenses_total_tview" android:layout_width="match_parent" android:layout_height="40dp" android:gravity="center_vertical" android:text="小计:29.00" android:textSize="16sp" android:layout_marginLeft="10dp"/> </LinearLayout> </LinearLayout> </FrameLayout>在activi中调用的方法
private void showMenuDialog(List<PayOrderDetail> payOrderList) { final MenuOrderDialog.Builder builder = new MenuOrderDialog.Builder(this); builder.setDatas(payOrderList); builder.setTitle("商家:"+bussinessName); builder.setNegativeButton("", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.create().show(); }过多的代码我就不给大家贴了,大家如果有什么问题和疑问可以留言,也可以关注,为了我们更好的开发,我们一起讨论,。