Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android java.lang.IndexOutOfBoundsException在删除项两次时发生异常_Android_Listview_Indexing_Indexoutofboundsexception_Listview Adapter - Fatal编程技术网

Android java.lang.IndexOutOfBoundsException在删除项两次时发生异常

Android java.lang.IndexOutOfBoundsException在删除项两次时发生异常,android,listview,indexing,indexoutofboundsexception,listview-adapter,Android,Listview,Indexing,Indexoutofboundsexception,Listview Adapter,我有一个适配器列表视图,当我单击删除函数(holder.image)时,显示这个erorr。这是我的适配器: public View getView(final int position, View view, ViewGroup parent) { final ViewHolder holder; if (view == null) { holder = new ViewHolder();

我有一个适配器列表视图,当我单击删除函数(holder.image)时,显示这个erorr。这是我的适配器:

public View getView(final int position, View view, ViewGroup parent) {
                final ViewHolder holder;
                if (view == null) {
                    holder = new ViewHolder();
                    view = inflater.inflate(R.layout.list_adapter_checkstok, parent, false);holder.txproduk = (TextView) view.findViewById(R.id.txproduk);
                    holder.txqty = (TextView) view.findViewById(R.id.txqty);
                    holder.txexpired = (TextView) view.findViewById(R.id.txexpired);
                    holder.txidproduk = (TextView) view.findViewById(R.id.txidproduk);
                    holder.spin = (Spinner) view.findViewById(R.id.spin);
        holder.imgexpired = (ImageView) view.findViewById(R.id.imgexpired);
                    holder.image = (Button) view.findViewById(R.id.image);
                    holder.image2 = (ImageView) view.findViewById(R.id.image2);
                    holder.image2.setVisibility(View.INVISIBLE);
        Database = new SQLite(context);
                    db = Database.getReadableDatabase();
        view.setTag(holder);
                } else {
                    holder = (ViewHolder) view.getTag();
                }
                tipe=ListViewCheckStock.get(position).getjnsprod();
                idprod=ListViewCheckStock.get(position).getidprod();
                unit=ListViewCheckStock.get(position).getunit();
                if (ListViewCheckStock.get(position).gettxproduk().equals("")) {
                    holder.txproduk.setText("");
                } else {
                    holder.txproduk.setText(ListViewCheckStock.get(position).gettxproduk());
                }
                if (ListViewCheckStock.get(position).getjnsprod().equals("")) {
                    holder.txidproduk.setText("");
                } else {
                    holder.txidproduk.setText("Produk " + ListViewCheckStock.get(position).getjnsprod());
                }
                if (ListViewCheckStock.get(position).gettxqty().equals("")) {
                    holder.txqty.setText("");
                } else {
                    holder.txqty.setText(ListViewCheckStock.get(position).gettxqty());
                }
                if (ListViewCheckStock.get(position).getexpired().equals("")) {
                    holder.txexpired.setText("");
                } else {
                    holder.txexpired.setText(ListViewCheckStock.get(position).getexpired());
                }
        final DatePickerDialog.OnDateSetListener dateListener = new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker view, int yr, int monthOfYear,
                                          int dayOfMonth) {
                        // TODO Auto-generated method stub
                        year = yr;
                        month = monthOfYear;
                        day = dayOfMonth;
                        holder.txexpired.setText(new StringBuilder().append(day).append("/")
                                .append(month + 1).append("/").append(year));
        holder.image2.setVisibility(View.VISIBLE);
                    }
                }; holder.imgexpired.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View v) {
         DatePickerDialog();
                        myCalendar = Calendar.getInstance();
                        dialog = new DatePickerDialog(context,
                                dateListener, year, month, day);
                        dialog.show();
         }
                });
                holder.image.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View v) {
        android.app.AlertDialog.Builder dialog = new android.app.AlertDialog.Builder(
                                context);
                        dialog.setMessage("Anda Yakin Ingin Menghapus Data Ini ?");
                        dialog.setPositiveButton("OK",
                                new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                        dialog.dismiss();
                                        String deleted;
                                        deleted = String.valueOf((ListViewCheckStock.get(position).getidtable()));
                                        System.out.println("Deleteeeeee" + deleted);
                                        db = Database.getWritableDatabase();
                                        db.delete("TBL_CHECKSTOCK", "TBL_CHECKSTOCK._id=?", new String[]{deleted});
        ListViewCheckStock.remove(position);
                                        notifyDataSetChanged();
                                    }
                                });
                        dialog.setNegativeButton("Kembali",
                                new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) { dialog.dismiss();
                                    }
                                });
                        dialog.show();
                    }
                });
        holder.image2.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View v) {
        android.app.AlertDialog.Builder dialog = new android.app.AlertDialog.Builder(
                                context);
                        dialog.setMessage("Anda Yakin Ingin Menyimpan Perubahan Data Ini ?");
                        dialog.setPositiveButton("OK",
                                new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {dialog.dismiss();
                                        String saving;
                                        saving = String.valueOf((ListViewCheckStock.get(position).getidtable()));
                                        System.out.println("saving" + saving);
        db = Database.getWritableDatabase();
        Database.updateSavingCheckstok(ListViewCheckStock.get(position).getunit(), saving, ListViewCheckStock.get(position).gettxqty(), ListViewCheckStock.get(position).getexpired());
         holder.txqty.clearFocus();
        holder.image2.setVisibility(View.INVISIBLE);
                                    }
                                });
                        dialog.setNegativeButton("Kembali",
                                new DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                        dialog.dismiss();
                                    }
                                });
                        dialog.show();
         }
                });
                holder.txqty.setOnFocusChangeListener(new View.OnFocusChangeListener() {
                    public void onFocusChange(View v, boolean hasFocus) {
                        if (!hasFocus) {
                            holder.image2.setVisibility(View.VISIBLE);
                        }
                    }
                });
                holder.txqty.addTextChangedListener(new TextWatcher() {
                    @Override
                    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                    }
         @Override
                    public void onTextChanged(CharSequence s, int start, int before, int count) {
                        if ((holder.txqty.getText().toString().contains(".") && !holder.spin.getSelectedItem().toString().equals("CAR")) &&
                                (holder.txqty.getText().toString().contains(".") && !holder.spin.getSelectedItem().toString().equals("KG"))) {
                            CustomDialog.init.setDialog(context,
                                    "Format angka", "Desimal tidak diperbolehkan dalam unit ini.",
                                    "ok", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                            holder.txqty.setText("");
                                        }
                                    });
                        }
                        Model_CheckStock itempos = ListViewCheckStock.get(position);
                        itempos.settxqty(holder.txqty.getText().toString());
                        Log.w("TAG >>", "onTextChanged : " + itempos.gettxqty());
        }
        @Override
                    public void afterTextChanged(Editable s) {
                    }
                });
                holder.txexpired.addTextChangedListener(new TextWatcher() {
                    @Override
                    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                    }
         @Override
                    public void onTextChanged(CharSequence s, int start, int before, int count) {
                        Model_CheckStock itempos = ListViewCheckStock.get(position);
                        itempos.setexpired(holder.txexpired.getText().toString());
                        Log.w("TAG >>", "onTextChanged expired : " + itempos.getexpired());
                    }
         @Override
                    public void afterTextChanged(Editable s) {
                    }
                });
        holder.spin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
         @Override
                    public void onItemSelected(AdapterView<?> adapterView, View view,
                                               int arg2, long id) {
         if ((holder.txqty.getText().toString().contains(".") && !holder.spin.getSelectedItem().toString().equals("CAR")) &&
                                (holder.txqty.getText().toString().contains(".") && !holder.spin.getSelectedItem().toString().equals("KG"))) {
                            CustomDialog.init.setDialog(context,
                                    "Format angka", "Desimal tidak diperbolehkan dalam unit ini.",
                                    "ok", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                            holder.txqty.setText("");
                                        }
                                    });
                        }
                        ListViewCheckStock.get(position).setunit(adapterView.getSelectedItem().toString());
                        Log.w("TAG >>", "onItemSelected: " + ListViewCheckStock.get(position).getunit());
                        holder.spin.setSelection(arg2);
                    }
        @Override
                    public void onNothingSelected(AdapterView<?> adapterView) {
                        // TODO Auto-generated method stub
         }
                });
                holder.spin.setOnTouchListener(new View.OnTouchListener(){
                    @Override
                    public boolean onTouch(View v, MotionEvent event) {
                        holder.image2.setVisibility(View.VISIBLE);
                        return false;
                    }
         });
                if (ListViewCheckStock.get(position).getidprod().contains("NONSGF")) {
                    List<Model_Unit> chekstok = Database.getUnitAll();
                    ArrayAdapter<Model_Unit> dataAdapter = new ArrayAdapter<Model_Unit>(
                            context, android.R.layout.simple_spinner_item, chekstok);
                    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                    holder.spin.setAdapter(dataAdapter);
                    holder.spin.setSelection(getIndex(holder.spin, ListViewCheckStock.get(position).getunit()));
                } else {
                    List<Model_Unit> chekstok = Database.getUnit(ListViewCheckStock.get(position).getidprod());
                    ArrayAdapter<Model_Unit> dataAdapter = new ArrayAdapter<Model_Unit>(
                            context, android.R.layout.simple_spinner_item, chekstok);
                    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                    holder.spin.setAdapter(dataAdapter);
                    holder.spin.setSelection(getIndex(holder.spin, ListViewCheckStock.get(position).getunit()));
                }
        if (ListViewCheckStock.get(position).getflagstats().equals("0")) {
        holder.image.setVisibility(View.VISIBLE);
        //            holder.image2.setVisibility(View.GONE);
                } else {
                    holder.txqty.setEnabled(false);
                    holder.spin.setEnabled(false);
                    holder.txexpired.setEnabled(false);
                    holder.imgexpired.setVisibility(View.GONE);
                    holder.image.setVisibility(View.GONE);
                    holder.image2.setVisibility(View.GONE);
                    view.setBackgroundResource(R.color.grayLlight);
                }
                return view;
            }
public View getView(最终int位置、视图视图、视图组父视图){
最终持票人;
如果(视图==null){
holder=新的ViewHolder();
视图=充气器。充气(R.layout.list\u adapter\u checkstok,parent,false);holder.txproduk=(TextView)视图。findViewById(R.id.txproduk);
holder.txqty=(TextView)view.findViewById(R.id.txqty);
holder.txexpired=(TextView)view.findViewById(R.id.txexpired);
holder.txidproduk=(TextView)view.findViewById(R.id.txidproduk);
holder.spin=(微调器)view.findViewById(R.id.spin);
holder.imgexpired=(ImageView)view.findViewById(R.id.imgexpired);
holder.image=(按钮)view.findViewById(R.id.image);
holder.image2=(ImageView)view.findViewById(R.id.image2);
holder.image2.setVisibility(视图不可见);
数据库=新SQLite(上下文);
db=Database.getReadableDatabase();
视图.设置标签(支架);
}否则{
holder=(ViewHolder)view.getTag();
}
tipe=ListViewCheckStock.get(position.getjnsprod();
idprod=ListViewCheckStock.get(位置).getidprod();
unit=ListViewCheckStock.get(position.getunit();
if(ListViewCheckStock.get(position.gettxproduk().equals)(“”){
holder.txproduk.setText(“”);
}否则{
holder.txproduk.setText(ListViewCheckStock.get(position.gettxproduk());
}
if(ListViewCheckStock.get(position).getjnsprod()等于(“”){
holder.txidproduk.setText(“”);
}否则{
holder.txidproduk.setText(“Produk”+ListViewCheckStock.get(position.getjnsprod());
}
if(ListViewCheckStock.get(position).gettxqty()等于(“”){
支架txqty.SETEXT(“”);
}否则{
holder.txqty.setText(ListViewCheckStock.get(position.gettxqty());
}
if(ListViewCheckStock.get(position).getexpired()等于(“”){
holder.txexpired.setText(“”);
}否则{
holder.txexpired.setText(ListViewCheckStock.get(position.getexpired());
}
final DatePickerDialog.OnDateSetListener dateListener=new DatePickerDialog.OnDateSetListener(){
@凌驾
公共无效onDateSet(日期选择器视图,整数年,整数月),
整数(每月的第几天){
//TODO自动生成的方法存根
年=年;
月=月/年;
天=月的第几天;
holder.txexpired.setText(新的StringBuilder().append(天).append(“/”)
.append(月+1)。append(“/”)。append(年));
holder.image2.setVisibility(视图可见);
}
};holder.imgexpired.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
DatePickerDialog();
myCalendar=Calendar.getInstance();
dialog=新建日期选择器dialog(上下文,
日期(年、月、日);
dialog.show();
}
});
holder.image.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
android.app.AlertDialog.Builder dialog=新建android.app.AlertDialog.Builder(
上下文);
setMessage(“在Menghapus数据Ini中的Anda Yakin?”);
对话框.setPositiveButton(“确定”,
新建DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
dialog.dismise();
删除字符串;
deleted=String.valueOf((ListViewCheckStock.get(position.getidtable()));
System.out.println(“deleteeee”+已删除);
db=Database.getWritableDatabase();
db.delete(“TBL_CHECKSTOCK”,“TBL_CHECKSTOCK.\u id=?”,新字符串[]{deleted});
ListViewCheckStock.remove(位置);
notifyDataSetChanged();
}
});
setNegativeButton(“Kembali”,
新建DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int其中){dialog.disclose();
}
});
dialog.show();
}
});
holder.image2.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
android.app.AlertDialog.Builder dialog=新建android.app.AlertDialog.Builder(
上下文);
setMessage(“Anda Yakin Ingin Menyimpan Perubahan Data Ini?”);
对话框.setPositiveButton(“确定”,
新建DialogInterface.OnClickListener(){
Model_CheckStock itempos = ListViewCheckStock.get(position);
                    itempos.setexpired(holder.txexpired.getText().toString());
holder.txexpired.getText().toString()