80,472
社区成员




public class MainActivity extends Activity {
private Button btnShowOrdered;
/** PopupWindow 相关 */
private PopupWindow mPopupwinow = null;
List<Menutbl> mMenus;
private View llyPopView;// PopupWindow显示的View
private ListView lsvContent;// PopupWindow显示的View中的ListView
private ListContentAdapter mListContentAdapter;
private Button btnOrder;
private TextView txtTotalPrice;
private ProgressDialog mProgressDialog;
// private ListView lsvTest;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
initUI();
setListener();
}
private void initData() {
mMenus = new ArrayList<Menutbl>();
for (int i = 0; i < 27; i++) {
Menutbl menutbl = new Menutbl();
menutbl.setId(i);
menutbl.setName("第" + i + "盘菜");
menutbl.setPrice(i * i);
mMenus.add(menutbl);
}
}
private void initUI() {
// 主界面控件
btnShowOrdered = (Button) findViewById(R.id.btn_show_ordered);
// PopupWindow 控件
llyPopView = LayoutInflater.from(MainActivity.this).inflate(
R.layout.popup_view, null);
btnOrder = (Button) llyPopView.findViewById(R.id.btn_order);
txtTotalPrice = (TextView) llyPopView
.findViewById(R.id.txt_total_price);
lsvContent = (ListView) llyPopView.findViewById(R.id.lsv_content);
// 设置数据适配器
mListContentAdapter = new ListContentAdapter();
mListContentAdapter.setMenus(mMenus);
lsvContent.setAdapter(mListContentAdapter);
mProgressDialog = new ProgressDialog(MainActivity.this);
mProgressDialog.setIndeterminate(true);
mProgressDialog.setCancelable(true);
mProgressDialog.setTitle("提示");
mProgressDialog.setMessage("菜单正在提交中,请稍后");
// // FOR TEST
// lsvTest = new ListView(MainActivity.this);
// lsvTest.setLayoutParams(new android.widget.AbsListView.LayoutParams(
// android.widget.AbsListView.LayoutParams.FILL_PARENT,
// android.widget.AbsListView.LayoutParams.WRAP_CONTENT));
// lsvTest.setCacheColorHint(0x00000000);// 设置 ListView 缓冲颜色为透明
// lsvTest.setAdapter(mListContentAdapter);
// // FOR TEST
}
private void setListener() {
btnShowOrdered.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (mPopupwinow == null) {
mPopupwinow = new PopupWindow(llyPopView,
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT, true);
mPopupwinow.setBackgroundDrawable(new ColorDrawable(
0x00000000));
}
mPopupwinow.showAsDropDown(btnShowOrdered, 0, 0);
// mPopupwinow.showAtLocation(findViewById(R.id.rly_main),
// Gravity.RIGHT | Gravity.TOP, 0, 0);
}
});
}
/**
* Class Name: MainActivity.java<br>
* Function:列表适配器<br>
*
* Modifications:<br>
*
* @author ZYT DateTime 2014-1-21 下午10:40:47<br>
* <a href="\"http://www.eoeandroid.com/home.php?mod=space&uid=85817\"" target="\"_blank\"">@version</a> 1.0<br>
* <br>
*/
class ListContentAdapter extends BaseAdapter {
private List<Menutbl> menus;
// public ListContentAdapter(List<Menutbl> menus) {
// this.menus = menus;
// }
public ListContentAdapter() {
}
public List<Menutbl> getMenus() {
return menus;
}
public void setMenus(List<Menutbl> menus) {
this.menus = menus;
int totalPrice = 0;
for (Menutbl menutbl : menus) {
totalPrice += menutbl.getPrice();
}
txtTotalPrice.setText("总价格:" + totalPrice + "元");
}
@Override
public int getCount() {
return menus.size();
}
@Override
public Object getItem(int position) {
return menus.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
View view;
if (convertView != null) {
view = convertView;
} else {
LayoutInflater inflater = LayoutInflater
.from(MainActivity.this);
view = inflater.inflate(R.layout.pop_list_item, null);
ViewHolder holder = new ViewHolder();
holder.txtName = (TextView) view.findViewById(R.id.txt_name);
holder.txtPrice = (TextView) view.findViewById(R.id.txt_price);
holder.btnDel = (ImageButton) view.findViewById(R.id.btnDel);
view.setTag(holder);
}
ViewHolder holder = (ViewHolder) view.getTag();
holder.txtName.setText("" + menus.get(position).getName() + "");
holder.txtPrice.setText("价格:" + menus.get(position).getPrice()
+ "元/份");
holder.btnDel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mMenus.remove(position);
mListContentAdapter.setMenus(mMenus);
mListContentAdapter.notifyDataSetChanged();
}
});
return view;
}
}
class ViewHolder {
public TextView txtName;
public TextView txtPrice;
public ImageButton btnDel;
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rly_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world" />
<Button
android:id="@+id/btn_show_ordered"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="show popup" />
</RelativeLayout>