警报对话框dismiss()无法正常工作

时间:2019-11-25 02:01:41

标签: android-alertdialog parent-child dismiss

首先,我有一个表,该表包含19列,用于处理该表的Activity,用于加载表的16列的光标

fun getArrayList1(dbHelper: DBHelper, type: Int): ArrayList<String> {
    var rv = ArrayList<String>()
    var query = ""
    val db = dbHelper.writableDatabase
    if (type == TYPE_HD) {
        query = "SELECT HolidayID, HolidayType, DaysofHoliday, StartDay, StartMonth, StartYear, EndDay, EndMonth, EndYear, PresentedDay, PresentedMonth, PresentedYear, Engineer, ApproveDay, ApproveMonth, ApproveYear FROM " + DBHelper.TABLE_HOL + " WHERE Empname LIKE '%" +sel3 + "%' AND StartMonth LIKE '%" + StartMonthSpin.selectedItem.toString() + "%' AND StartYear LIKE '%" + sel4 + "%'"
    }
    Log.d("GETARRAYLIST", "Query is \n\t" + query)
    val c = db.rawQuery(query, null)
    while (c.moveToNext()) {
        rv.add(c.getString(0))
        rv.add(c.getString(1))
        rv.add(c.getString(2))
        rv.add(c.getString(3))
        rv.add(c.getString(4))
        rv.add(c.getString(5))
        rv.add(c.getString(6))
        rv.add(c.getString(7))
        rv.add(c.getString(8))
        rv.add(c.getString(9))
        rv.add(c.getString(10))
        rv.add(c.getString(11))
        rv.add(c.getString(12))
        rv.add(c.getString(13))
        rv.add(c.getString(14))
        rv.add(c.getString(15))
    }
    c.close()
    return rv
}

数据加载完美,我的意思是数据加载器没有问题。我使用在Alert对话框中加载的数据,为arraylist中的数据创建了一个计数器,将该计数器除以16(列数)。如果结果为1,则将发生某些事情;如果结果为2,则将发生另一件事

计数器== 1

    fun Counter1() {
        val builder = AlertDialog.Builder(this@HolidaysPage)
        builder.setTitle("تحذير بخصوص الأجازة")
        builder.setPositiveButton("استكمال الأجازة") { dialog, which ->
            dialog.dismiss()
        }`
builder.setNegativeButton("استعراض الأجازة"){dialog,which ->
                    Toast.makeText(applicationContext, "سنقوم بغلق نافذة الأجازة لاستعراض البيانات", Toast.LENGTH_SHORT).show()
                    intent.putExtra("Counter", Counter.toString())
                    intent.putExtra("HolidayID", HolidaysDetails.get(0))
                    intent.putExtra("HolidayType", HolidaysDetails.get(1))
                    intent.putExtra("Days", HolidaysDetails.get(2))
                    intent.putExtra("StartDay", HolidaysDetails.get(3))
                    intent.putExtra("StartMonth", HolidaysDetails.get(4))
                    intent.putExtra("StartYear", HolidaysDetails.get(5))
                    intent.putExtra("EndDay", HolidaysDetails.get(6))
                    intent.putExtra("EndMonth", HolidaysDetails.get(7))
                    intent.putExtra("EndYear", HolidaysDetails.get(8))
                    intent.putExtra("PresentedDay", HolidaysDetails.get(9))
                    intent.putExtra("PresentedMonth", HolidaysDetails.get(10))
                    intent.putExtra("PresentedYear", HolidaysDetails.get(11))
                    intent.putExtra("Engineer", HolidaysDetails.get(12))
                    intent.putExtra("ApproveDay", HolidaysDetails.get(13))
                    intent.putExtra("ApproveMonth", HolidaysDetails.get(14))
                    intent.putExtra("ApproveYear", HolidaysDetails.get(15))
                    intent.putExtra("EmpName", sel3)
                    startActivity(intent)}
        val dialog: AlertDialog = builder.create()
        dialog.show()
    }`
        builder.setNeutralButton("إلغاء") { _, _ ->
            finish()
        }

如果我单击“中性”按钮,输出将出现在子活动中。 主要问题是,当我单击肯定按钮时,我什么也没做,只是关闭了对话框,但是我必须单击16次(作为加载的列数)才能关闭对话框。

任何人都可以帮助我解决此问题吗?考虑一下,如果Counter == 2,则加载的数据将不仅是32,而且是32,因此我必须在肯定按钮上单击32次以关闭该对话框。

0 个答案:

没有答案
相关问题