使用在android编程中选中复选框时显示的alertbox从给定自定义listview中删除行的代码
下面是我的代码 1) 这是一个包含getter和setter方法+基本适配器扩展的类使用在android编程中选中复选框时显示的alertbox从给定自定义listview中删除行的代码,android,eclipse,listview,Android,Eclipse,Listview,下面是我的代码 1) 这是一个包含getter和setter方法+基本适配器扩展的类 package virtual.mall; import java.util.List; import virtual.mall.Salt_page_ada.saltlist_holder; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android
package virtual.mall;
import java.util.List;
import virtual.mall.Salt_page_ada.saltlist_holder;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.TextView;
class Order1_cls {
String o1_it_name,o1_it_count;
int o1_it_cost,o1_it_qty;
Boolean o1isselect=false;
public Order1_cls(String o1_it_name,String o1_it_count,int o1_it_qty,int o1_it_cost){
super();
this.o1_it_name = o1_it_name;
this.o1_it_count=o1_it_count;
this.o1_it_qty=o1_it_qty;
this.o1_it_cost = o1_it_cost;
this.o1isselect=o1isselect;
}
public String getO1_it_name() {
return o1_it_name;
}
public void setO1_it_name(String o1_it_name) {
this.o1_it_name = o1_it_name;
}
public String getO1_it_count() {
return o1_it_count;
}
public void setO1_it_count(String o1_it_count) {
this.o1_it_count = o1_it_count;
}
public int getO1_it_cost() {
return o1_it_cost;
}
public void setO1_it_cost(int o1_it_cost) {
this.o1_it_cost = o1_it_cost;
}
public int getO1_it_qty() {
return o1_it_qty;
}
public void setO1_it_qty(int o1_it_qty) {
this.o1_it_qty = o1_it_qty;
}
public Boolean getO1isselect() {
return o1isselect;
}
public void setO1isselect(Boolean o1isselect) {
this.o1isselect = o1isselect;
}
}
public class Order1_page extends ArrayAdapter<Order1_cls> {
private List <Order1_cls> order1list;
private Context context;
public Order1_page(List<Order1_cls> order1list, Context context) {
super(context, R.layout.order1listref,order1list);
this.order1list=order1list;
this.context=context;
}
public static class Order1list_holder{
public TextView o1_name;
public TextView o1_count;
public TextView o1_qty;
public TextView o1_cost;
public CheckBox o1chkbx;
}
public View getView(int pos,View con_view,ViewGroup parent){
View v=con_view;
Order1list_holder hold=new Order1list_holder();
if(con_view==null){
LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v=inflater.inflate(R.layout.order1listref,null);
hold.o1_name=(TextView)v.findViewById(R.id.o1_tv_name);
hold.o1_count=(TextView)v.findViewById(R.id.o1_tv_count);
hold.o1_qty=(TextView)v.findViewById(R.id.o1_tv_qty);
hold.o1_cost=(TextView)v.findViewById(R.id.o1_tv_cost);
hold.o1chkbx=(CheckBox)v.findViewById(R.id.o1_cBox);
hold.o1chkbx.setOnCheckedChangeListener((Order1class) context);
}
else{
hold=(Order1list_holder)v.getTag();
}
Order1_cls o1= order1list.get(pos);
//hold.o1_name.setText(o1.getO1_it_name());
hold.o1_count.setText(o1.getO1_it_count());
hold.o1_qty.setText(" "+o1.getO1_it_qty());
hold.o1_cost.setText(" " + o1.getO1_it_cost());
hold.o1chkbx.setChecked(o1.o1isselect);
hold.o1chkbx.setTag(o1);
return v;
}
}
package virtual.mall;
导入java.util.List;
导入virtual.mall.Salt\u页面\u ada.Salt列表\u持有者;
导入android.content.Context;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.CheckBox;
导入android.widget.TextView;
类顺序1\u cls{
字符串o1_it_名称,o1_it_计数;
int o1_it_成本,o1_it_数量;
布尔值o1isselect=false;
公共订单1\u cls(字符串o1\u-it\u名称、字符串o1\u-it\u计数、整数o1\u-it\u数量、整数o1\u-it\u成本){
超级();
this.o1_it_name=o1_it_name;
这个.o1_it_count=o1_it_count;
此.o1_it_数量=o1_it_数量;
这.o1_it_成本=o1_it_成本;
this.o1isselect=o1isselect;
}
公共字符串getO1\u it\u name(){
返回o1_it_名称;
}
public void setO1\u it\u名称(字符串o1\u it\u名称){
this.o1_it_name=o1_it_name;
}
公共字符串getO1\u it\u count(){
返回o1_it_计数;
}
公共无效集合1\u it\u计数(字符串o1\u it\u计数){
this.o1_it_count=o1_it_count;
}
公共int getO1_it_成本(){
返回1_it_成本;
}
公共作废设置成本(内部成本){
这.o1_it_成本=o1_it_成本;
}
公共int getO1_it_数量(){
退回1个it数量;
}
公共作废设置1\u it\u数量(int o1\u it\u数量){
此.o1_it_数量=o1_it_数量;
}
公共布尔值getO1isselect(){
返回O1选择;
}
公共无效集合O1SSELECT(布尔值O1SSELECT){
this.o1sselect=o1sselect;
}
}
公共类Order1_页扩展了ArrayAdapter{
私有列表医嘱列表;
私人语境;
公共医嘱1_页面(列表医嘱1列表,上下文){
super(context,R.layout.order1listref,order1list);
this.order1list=order1list;
this.context=context;
}
公共静态类Order1列表\u持有者{
公共文本视图o1_名称;
公共文本视图o1_计数;
公共文本查看o1_数量;
公共文本视图o1_成本;
公共复选框o1chkbx;
}
公共视图getView(内部位置、视图控制视图、视图组父视图){
视图v=con_视图;
Order1list_holder hold=新的Order1list_holder();
if(con_view==null){
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
v=充气机充气(R.layout.order1listref,空);
hold.o1_name=(TextView)v.findViewById(R.id.o1_tv_name);
hold.o1_计数=(TextView)v.findViewById(R.id.o1_电视计数);
hold.o1_数量=(文本视图)v.findViewById(R.id.o1_电视数量);
hold.o1_成本=(文本视图)v.findViewById(R.id.o1_电视成本);
hold.o1chkbx=(复选框)v.findviewbyd(R.id.o1_cBox);
hold.o1chkbx.setOnCheckedChangeListener((Order1class)上下文);
}
否则{
hold=(Order1list_holder)v.getTag();
}
Order1_cls o1=order1list.get(pos);
//hold.o1_name.setText(o1.getO1_it_name());
hold.o1_count.setText(o1.getO1_it_count());
hold.o1_数量设置文本(“+o1.getO1_数量());
hold.o1_cost.setText(“+o1.getO1_it_cost());
hold.o1chkbx.setChecked(o1.o1选择);
hold.o1chkbx.setTag(o1);
返回v;
}
}
2) 这是使用处理程序扩展活动的主类的代码
我已经在下面编写了删除代码,但它显示了一个例外
import java.util.ArrayList;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.SparseBooleanArray;
import android.view.View;
import android.widget.CompoundButton;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.Toast;
public class Order1class extends Activity implements android.widget.CompoundButton.OnCheckedChangeListener {
ListView lv;
ArrayList<Order1_cls> order1list; //class name in ref java file
Order1_page o1adapter; // ref xml name
ArrayList<Integer> positionslist;
ImageButton addc,delbtn;
protected Object posi;
final Context context = this;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.order1pageclass);
positionslist=new ArrayList<Integer>();
lv=(ListView)findViewById(R.id.order1class_listv); //listview id in main layout
disp_ord1list();
}
private void disp_ord1list() {
// TODO Auto-generated method stub
order1list =new ArrayList<Order1_cls>();
order1list.add(new Order1_cls("Rice(basmati)","1kg packet",3,450));
order1list.add(new Order1_cls("Lentils(finegrade)","2kg packet",2,500));
order1list.add(new Order1_cls("Colgate","5kg packet",3,60));
order1list.add(new Order1_cls("cereal","1kg packet",3,60));
order1list.add(new Order1_cls("surfexcel","2kg packet",2,40));
order1list.add(new Order1_cls("vim","200gms Bar",1,25));
order1list.add(new Order1_cls("Flour","5kg packet",1,300));
o1adapter=new Order1_page(order1list,this);
lv.setAdapter(o1adapter);
}
@Override
public void onCheckedChanged(CompoundButton but_view, boolean o1isselected) {
// TODO Auto-generated method stub
int posi=lv.getPositionForView(but_view);
if(posi !=ListView.INVALID_POSITION){
Order1_cls o1=order1list.get(posi);
o1.setO1isselect(o1isselected);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);
// set title
alertDialogBuilder.setTitle("remove item ??");
// set dialog message
alertDialogBuilder
.setMessage("Click yes to delete")
.setCancelable(false)
.setPositiveButton("Delete",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
for(int position : positionslist){
order1list.remove(position);
} o1adapter.notifyDataSetChanged();
}
})
.setNegativeButton("add",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, just close
// the dialog box and do nothing
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
}
// Toast.makeText(this,"CLICKED ON " + o1.getO1_it_name()+"of count "+ o1.getO1_it_count()+"cost is "+o1.getO1_it_cost(),Toast.LENGTH_SHORT).show();
}
}
import java.util.ArrayList;
导入android.app.Activity;
导入android.app.AlertDialog;
导入android.content.Context;
导入android.content.DialogInterface;
导入android.content.Intent;
导入android.os.Bundle;
导入android.util.SparseBooleanArray;
导入android.view.view;
导入android.widget.CompoundButton;
导入android.widget.ImageButton;
导入android.widget.ListView;
导入android.widget.Toast;
公共类Order1class extends活动实现android.widget.CompoundButton.OnCheckedChangeListener{
ListView lv;
ArrayList order1list;//ref java文件中的类名
Order1\u页面o1adapter;//引用xml名称
ArrayList位置列表;
图像按钮addc,delbtn;
保护对象posi;
最终上下文=此;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.order1pageclass);
positionslist=新的ArrayList();
lv=(ListView)findViewById(R.id.order1class_listv);//主布局中的ListView id
disp_ord1list();
}
私有无效disp_ord1list(){
//TODO自动生成的方法存根
order1list=新的ArrayList();
订单列表。添加(新订单1_cls(“大米(basmati)”,“1kg包装”,3450);
order1list.add(新的Order1_cls(“扁豆(精细级)”,“2kg包装”,2500));
订单列表。添加(新订单1_cls(“高露洁”,“5kg包装”,3,60));
订单列表。添加(新订单1_cls(“谷物”,“1kg包装”,3,60));
订单列表。添加(新订单1_cls(“surfexcel”,“2kg数据包”,2,40));
订单列表。添加(新订单1_cls(“vim”,“200gms Bar”,1,25));
订单列表。添加(新订单1_cls(“面粉”,“5kg包装”,1300));
o1adapter=新订单1_页面(订单列表,本页);
低压设置适配器(O1适配器);
}
@凌驾
已更改复选框时的公共无效(已选择组合按钮但未选择视图,布尔值O1){
//TODO自动生成的方法存根
int posi=lv.getPositionForView(但_视图);
if(posi!=ListView.位置无效){
Order1_cls o1=order1list.get(posi);
o1.设置o1选择(o1选择);
AlertDialog.Builder alertDialogBuilder=新建AlertDialog.Builder(
上下文);
//定名
alertDialogBuilder.setTitle(“删除项”);
//设置对话框消息
alertDialogBuilder
.setMessage(“单击是删除”)
.setCancelable(错误)
.setPositiveButton(“删除”,新拨号
<?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="match_parent" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="#58ACFA"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Order-1 27/3/15"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="25dp" />
</LinearLayout>
<ListView
android:id="@+id/order1class_listv"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_above="@+id/lay1"
android:layout_alignParentLeft="true"
android:layout_below="@+id/linearLayout1"
android:background="#FAFAFA" >
</ListView>
<LinearLayout
android:id="@+id/lay1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:background="#58ACFA"
android:orientation="horizontal" >
<ImageButton
android:id="@+id/imageButton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/menu_btn"
android:background="#58ACFA" />
<ImageButton
android:id="@+id/imageButton4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.65"
android:src="@drawable/home_btn"
android:background="#58ACFA"
/>
<ImageButton
android:id="@+id/imageButton5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/cart_btn"
android:background="#58ACFA" />
</LinearLayout>
</RelativeLayout>
<?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="match_parent" >
<TextView
android:id="@+id/o1_tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_margin="5dp"
android:text="Rice(Basmati)"
android:textAppearance="?android:attr/textAppearanceLarge" />
<CheckBox
android:id="@+id/o1_cBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_margin="5dp"
android:layout_marginRight="36dp"
android:text="+ Cart" />
<TextView
android:id="@+id/o1_tv_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/o1_tv_name"
android:layout_below="@+id/o1_tv_name"
android:layout_margin="5dp"
android:text="5kg Pack"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="20dp" />
<TextView
android:id="@+id/o1_tv_qty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/o1_tv_count"
android:layout_alignBottom="@+id/o1_tv_count"
android:layout_margin="5dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="28dp"
android:layout_toLeftOf="@+id/o1_cBox"
android:text="3"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="20dp" />
<TextView
android:id="@+id/tvqty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/o1_tv_qty"
android:layout_alignBottom="@+id/o1_tv_qty"
android:layout_margin="5dp"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/o1_tv_name"
android:text="Qty :"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="20dp" />
<TextView
android:id="@+id/o1_tv_cost"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/o1_tv_qty"
android:layout_alignBottom="@+id/o1_tv_qty"
android:layout_alignRight="@+id/o1_cBox"
android:layout_margin="5dp"
android:text="450 "
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="20dp" />
</RelativeLayout>