javascript - 如何以编程方式禁用 onclick 按钮功能

标签 javascript android for-loop button

这是我的编程按钮,logcat 中出现错误空指针异常。

这是我循环按钮的方法。但是按钮的禁用按钮无法运行。当我单击“保存”按钮时,以编程方式按钮将禁用。难道是我禁用按钮的方法不正确?

 String CountQuery = "SELECT * FROM Category";
    db = new DBController(getActivity());
    SQLiteDatabase db2 = db.getReadableDatabase();
    Cursor cursor1 = db2.rawQuery(CountQuery, null);
    {
        int num = cursor1.getCount();
        Button[] valueB = new Button[num];
        for (int i = 1; i < num; i++) {

            String SelectQuery = "SELECT  * FROM Category where CategoryID='" + i + "'";
            db = new DBController(getActivity());
            SQLiteDatabase db1 = db.getReadableDatabase();
            Cursor cursor = db1.rawQuery(SelectQuery, null);

            if (cursor.moveToNext()) {

                String categoryName = cursor.getString(1);
                String coordinateX = cursor.getString(2);
                String coordinateY = cursor.getString(3);

                valueB[i] = new Button(getActivity());
                valueB[i].setText("" + categoryName);
                valueB[i].setId(i);
                valueB[i].setOnTouchListener(this);

                params = new RelativeLayout.LayoutParams(300, 100);
                params.leftMargin = Integer.parseInt(coordinateX);
                params.topMargin = Integer.parseInt(coordinateY);

                final int finalI = i;
                valueB[i].setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {

                        Toast.makeText(getActivity(), "asdasd" + finalI, Toast.LENGTH_SHORT).show();
                        viewPager = (ViewPager) getActivity().findViewById(R.id.pager);
                        viewPager.setCurrentItem(finalI);
                    }
                });
                mRrootLayout.addView(valueB[i],params);
            }

            save.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    for (i[0] = 1; i[0] < num; i[0]++) {
                        valueB[i[0]].setOnTouchListener(null);
                    }

                }
            });
        }

    }

最佳答案

您可以使用 valueB[i].setOnClickListener(null); 禁用 onclick 监听器

关于javascript - 如何以编程方式禁用 onclick 按钮功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41342456/

相关文章:

java - 安卓选项菜单

android - 无法使用 react-native 为 android 构建

javascript - 如何将变量 X 替换为数组索引 0 处的数据,其值为 'X'

javascript - Alert() 在 else 语句中无法正常工作

javascript - 通过 jquery 失败循环遍历下拉列表中的所有项目的逻辑

javascript - 不需要的 "Expand"链接不会消失。无法追查来源。显示:none; not working.(Wordpress)

JavaScript 函数参数

android - 如何关闭安卓应用程序?

java - "for (int clickableId : clickableIds)"有什么作用?

javascript - jQuery .on click 仅在第一次适用于动态元素