如何覆盖其他隐藏按钮验证

时间:2015-05-24 13:31:57

标签: android validation datetime button

我正在尝试使用View.GONE方法隐藏按钮。但由于我有很多验证,我似乎无法在最新的验证中隐藏按钮。有没有办法覆盖所有其他隐藏按钮命令?我的逻辑没有错。我用Toasts测试了它们。但按钮根本无法隐藏。我试着让它不可点击。它也不起作用。这是我的代码。如果我的TextView中的日期比今天要小,我试图隐藏按钮。

SimpleDateFormat dateFormat = new SimpleDateFormat("M-dd-yyyy");
       try {
           today = dateFormat.parse(dateFormat.format(new Date()));
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

       String chkdate = edate.getText().toString();
       SimpleDateFormat sdf = new SimpleDateFormat("M-dd-yyyy");
       try {
        mydate = sdf.parse(chkdate);
    } catch (ParseException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    try{
       result = mydate.compareTo(today);
       System.out.println("result "+result);
       }catch(NullPointerException e2) {
            // TODO Auto-generated catch block
            e2.printStackTrace();
       }



       if(result < 0){
           don.setClickable(false);
           don.setVisibility(GONE);
           Toast toast= Toast.makeText(getApplicationContext(), 
                    "button gone", Toast.LENGTH_SHORT);  
                    toast.setGravity(Gravity.CENTER|Gravity.CENTER_HORIZONTAL, 0, 0);
                    toast.show();
       }
       else if(result >= 0){
           don.setClickable(true);
           don.setVisibility(VISIBLE);
           Toast toast= Toast.makeText(getApplicationContext(), 
                    "Button visible", Toast.LENGTH_SHORT);  
                    toast.setGravity(Gravity.CENTER|Gravity.CENTER_HORIZONTAL, 0, 0);
                    toast.show();
       }

3 个答案:

答案 0 :(得分:1)

你应该使用don.setVisibility(View.INVISIBLE)

....
if(result < 0){
       don.setClickable(false);
       don.setVisibility(View.INVISIBLE)
       Toast toast= Toast.makeText(getApplicationContext(), 
                "button gone", Toast.LENGTH_SHORT);  
                toast.setGravity(Gravity.CENTER|Gravity.CENTER_HORIZONTAL, 0, 0);
                toast.show();
   }
....

答案 1 :(得分:1)

我想这很难解释。我认为,您必须在其他验证中添加新的验证。这样它就不会发生冲突,而且你更容易调试

答案 2 :(得分:0)

你不需要

 don.setVisibility(LinearLayout.GONE) 

后 if(结果&lt; 0){