简体   繁体   English

如何以编程方式禁用函​​数onclick按钮

[英]How to disable function onclick programmatically button

this is my programmatically button, there is the error null pointer exception in logcat. 这是我的编程按钮,在logcat中有错误空指针异常。

This is my way to loop the button.But the disable button for the button cannot function.When i click on "save" button the programmatically button will disable. 这是我循环按钮的方法。但是按钮的禁用按钮无法正常工作。当我点击“保存”按钮时,编程按钮将禁用。 is it my way to disable button is incorrect? 是我的方式禁用按钮是不正确的?

 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侦听器valueB[i].setOnClickListener(null);

you can disable the button by using setClickable method. 您可以使用setClickable方法禁用该按钮。

valueB[i].setClickable(false);

or you can user setEnabled method also like 或者你也可以像用户setEnabled方法一样

valueB[i].setEnabled(false);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM