单击textview后禁用单击

时间:2017-05-23 05:04:59

标签: android android-layout android-linearlayout textview onclicklistener

我有一个TextView,我在这个OnClickListener上添加了TextView。我使用此操作将自定义视图加载到LinearLayout

但是当我点击此TextView两次时,自定义视图会在LinearLayout上重复显示。在将新的自定义视图加载到此LinearLayout之前,我清除了此LinearLaout上的所有自定义视图。

这是OnClickListener上的TextView

TextView rejectedTitleTextView = (TextView) findViewById(R.id.roster_menu_rejected_title);

rejectedTitleTextView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                rejectedTitleTextView.setBackgroundColor(getResources().getColor(R.color.acceptedPurpleColour));
                newTitleTextView.setBackgroundColor(getResources().getColor(R.color.defaultBlack));
                acceptedTitleTextView.setBackgroundColor(getResources().getColor(R.color.defaultBlack));

                locationLinearLayout.removeAllViews();
                rosterBottomLayout.setVisibility(View.GONE);

                Log.d("CHECK_ACTION"," REJECTED_TEXT_VIEW ");

                InternetConnectivity internetConnectivity = new InternetConnectivity();
                final boolean isConnectedToInternet = internetConnectivity.isConnectedToInternet(context);

                if(isConnectedToInternet==true) {
                    try {
                        Thread.sleep(1300);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    getDataFromServer("REJECTED");
                }else{
                        Snackbar.make(mainView, "No Internet Connection", Snackbar.LENGTH_LONG)
                                .setAction("Action", null).show();
                }

            }
        });

getDataFromServer(" REJECTED&#34);

是我用来将自定义视图加载到此LinearLayout

的方法

如何防止此问题?

有任何想法吗?

4 个答案:

答案 0 :(得分:6)

在onclickListener里面放

rejectedTitleTextView.setClickable(false);

并且一旦完成您的功能,请将其设置为true,因为您需要在下次点击。

rejectedTitleTextView.setClickable(true);

答案 1 :(得分:4)

setOnclickListener内部尝试以下代码: -

textView.setClickable(false);

答案 2 :(得分:3)

试试这个

    rejectedTitleTextView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {  
                mSpinner.setEnabled(false); 
                 mSpinner.postDelayed(new Runnable() { @Override public 
                 void run() {
                  mSpinner.setEnabled(true); }
                }
              //  do your stuff here
            });

答案 3 :(得分:1)

您可以像这样维护布尔值

    boolean isClick=false;

rejectedTitleTextView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            if(!isClick)
            {
              //do your Stuff on onCLick
              isClick=true;
             }else
                  {
                    //leave it blank if you do not want to do anything second time
                        }
            }
        });