我正在尝试使用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();
}
答案 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){