Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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 带有AlertDialog的ListView无响应OnClickListener,无错误-正在工作_Android - Fatal编程技术网

Android 带有AlertDialog的ListView无响应OnClickListener,无错误-正在工作

Android 带有AlertDialog的ListView无响应OnClickListener,无错误-正在工作,android,Android,这是账单应用程序的带有AlertDialog的列表视图,单击每个列表项时,该应用程序会弹出支付、编辑或删除选项。然后选择“支付”或“编辑”,然后在重新记录到其他活动之前,它会收集该选项的相关数据。选择“删除”后,将显示另一个AlertDialog以在删除之前进行确认 我让它工作得很好(listView项目是可点击的),但现在什么都没有了。我一遍又一遍地检查我的代码,结果我被难住了。 我相信它最终会变得很小,但就我的一生而言,我无法理解它 有人能告诉我我错过了什么吗 final Context c

这是账单应用程序的带有AlertDialog的列表视图,单击每个列表项时,该应用程序会弹出支付、编辑或删除选项。然后选择“支付”或“编辑”,然后在重新记录到其他活动之前,它会收集该选项的相关数据。选择“删除”后,将显示另一个AlertDialog以在删除之前进行确认

我让它工作得很好(listView项目是可点击的),但现在什么都没有了。我一遍又一遍地检查我的代码,结果我被难住了。 我相信它最终会变得很小,但就我的一生而言,我无法理解它

有人能告诉我我错过了什么吗

final Context context = this;
    ArrayList<BillArray> bills = db.getBillArray();

    final ListView lv = (ListView) findViewById(R.id.list);
    lv.setAdapter(new MyCustomBaseAdapter(this, bills));

    lv.setOnItemClickListener(new OnItemClickListener(){
        @Override
        public void onItemClick(AdapterView<?> a, View v, int position, long id) {

            Object o = lv.getItemAtPosition(position);
            final BillArray fullObject = (BillArray)o;
            Toast.makeText(MainActivity.this, "You've chosen: "+" "+ fullObject.getVendor(),
                    Toast.LENGTH_SHORT).show();

            final CharSequence[] items = { "Pay Bill", "Edit", "Delete" };

              AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
              builder.setTitle("Options for:\n"+ fullObject.getVendor());
              builder.setIcon(R.drawable.ic_launcher);
              builder.setItems(items, new DialogInterface.OnClickListener() {

                  public void onClick(DialogInterface dialog, int item) {

                      Toast.makeText(getApplicationContext(), items[item] + " selected", 
                              Toast.LENGTH_SHORT).show();

                      if(items[item] == "Pay Bill"){
                          // LOAD "PAY BILL" PAGE

                          Intent payBill = new Intent(context, PayBillActivity.class);
                          payBill.putExtra("id", fullObject.getId());
                          payBill.putExtra("vendor", fullObject.getVendor());
                          payBill.putExtra("acct", fullObject.getAcct());
                          payBill.putExtra("payment", fullObject.getPayment());
                          payBill.putExtra("mindue", fullObject.getMinDue());
                          payBill.putExtra("tDue", fullObject.getTdue());
                          payBill.putExtra("tBal", fullObject.getTbal());

                          final int result = 1;
                            startActivityForResult(payBill, result);
                      }

                      if(items[item] == "Edit"){
                          // LOAD "EDIT" PAGE

                          Intent editBill = new Intent(context, EditBillActivity.class);
                          editBill.putExtra("id", fullObject.getId());
                          editBill.putExtra("vendor", fullObject.getVendor());
                          editBill.putExtra("acct", fullObject.getAcct());
                          editBill.putExtra("payment", fullObject.getPayment());
                          editBill.putExtra("typePos", fullObject.getTypePos());
                          editBill.putExtra("billType", fullObject.getBillType());
                          editBill.putExtra("billDay", fullObject.getBillDay());
                          editBill.putExtra("mindue", fullObject.getMinDue());
                          editBill.putExtra("amtPaid", fullObject.getAmtPaid());
                          editBill.putExtra("tDue", fullObject.getTdue());
                          editBill.putExtra("tBal", fullObject.getTbal());

                          final int result = 1;
                            startActivityForResult(editBill, result);
                      }

                      if(items[item] == "Delete"){
                          // POP-UP CONFIRMATION DIALOG W/ "DELETE" AND "CANCEL" BUTTON
                          AlertDialog.Builder delCon = new AlertDialog.Builder(MainActivity.this);
                          delCon.setTitle("DELETE " + fullObject.getVendor() + "?");
                          delCon.setPositiveButton("DELETE", new DialogInterface.OnClickListener() {

                            @Override
                            public void onClick(DialogInterface dialog, int which) {

                                db.deleteBill(fullObject);

                                Toast.makeText(getApplicationContext(), "DELETED",
                                        Toast.LENGTH_LONG).show();

                                Intent intent = getIntent();
                                finish();
                                startActivity(intent);
                            }
                          });                             
                          delCon.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {

                            @Override
                            public void onClick(DialogInterface dialog, int which) {

                                Toast.makeText(getApplicationContext(), "DELETION CANCELLED",
                                        Toast.LENGTH_LONG).show();
                            }                                 
                          });
                          AlertDialog confirm = delCon.create();
                          confirm.show();
                      }
                  }
              });
              AlertDialog alert = builder.create();               
              alert.show();
        }
    });
final Context=this;
ArrayList bills=db.getBillArray();
最终ListView lv=(ListView)findViewById(R.id.list);
lv.setAdapter(新的MyCustomBaseAdapter(本,账单));
lv.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共视图单击(适配器视图a、视图v、内部位置、长id){
对象o=lv.getItemAtPosition(位置);
最终BillArray fullObject=(BillArray)o;
Toast.makeText(MainActivity.this,“您已选择:”+“”+fullObject.getVendor(),
吐司。长度(短)。show();
final CharSequence[]项目={“付款单”、“编辑”、“删除”};
AlertDialog.Builder=新建AlertDialog.Builder(MainActivity.this);
setTitle(“选项:\n”+fullObject.getVendor());
builder.setIcon(R.drawable.ic_启动器);
setItems(items,新的DialogInterface.OnClickListener()对话框){
公共void onClick(对话框接口对话框,int项){
Toast.makeText(getApplicationContext(),items[item]+“已选定”,
吐司。长度(短)。show();
如果(项目[项目]=“付款单”){
//加载“支付账单”页面
意向付款单=新意向(上下文,PayBillActivity.class);
payBill.putExtra(“id”,fullObject.getId());
payBill.putExtra(“供应商”,fullObject.getVendor());
payBill.putExtra(“acct”,fullObject.getAcct());
payBill.putExtra(“付款”,fullObject.getPayment());
payBill.putExtra(“mindue”,fullObject.getMinDue());
payBill.putExtra(“tDue”,fullObject.getdue());
payBill.putExtra(“tBal”,fullObject.getTbal());
最终int结果=1;
startActivityForResult(账单、结果);
}
如果(项目[项目]=“编辑”){
//加载“编辑”页面
意图editBill=新意图(上下文,EditBillActivity.class);
editBill.putExtra(“id”,fullObject.getId());
editBill.putExtra(“供应商”,fullObject.getVendor());
editBill.putExtra(“acct”,fullObject.getAcct());
editBill.putExtra(“付款”,fullObject.getPayment());
editBill.putExtra(“typePos”,fullObject.getTypePos());
editBill.putExtra(“billType”,fullObject.getBillType());
editBill.putExtra(“billDay”,fullObject.getBillDay());
editBill.putExtra(“mindue”,fullObject.getMinDue());
editBill.putExtra(“amtPaid”,fullObject.getAmtPaid());
editBill.putExtra(“tDue”,fullObject.getdue());
editBill.putExtra(“tBal”,fullObject.getTbal());
最终int结果=1;
startActivityForResult(编辑账单,结果);
}
如果(项目[项目]=“删除”){
//弹出确认对话框W/“删除”和“取消”按钮
AlertDialog.Builder delCon=新建AlertDialog.Builder(MainActivity.this);
delCon.setTitle(“删除”+fullObject.getVendor()+“?”;
delCon.setPositiveButton(“删除”,新建DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
db.deleteBill(fullObject);
Toast.makeText(getApplicationContext(),“已删除”,
Toast.LENGTH_LONG).show();
Intent=getIntent();
完成();
星触觉(意向);
}
});                             
delCon.setNegativeButton(“取消”,新建DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
Toast.makeText(getApplicationContext(),“删除已取消”,
Toast.LENGTH_LONG).show();
}                                 
});
AlertDialog confirm=delCon.create();
confirm.show();
}
}
});
AlertDialog alert=builder.create();
alert.show();
}
});

经过几天的研究、几次尝试/错误和几次满头头发;)我找到了问题的答案

我尝试过使用:listView.setClickable(true),但没有成功。然后我转到我的listView_layout.xml文件并尝试添加