edittext可见性在运行时根据其可见性而更改

时间:2014-04-07 07:16:34

标签: android android-edittext

你好我想做的一切

1]如果 edittext 可见 ,则 隐身 ,如果 隐形 然后 可见 ,因为我已经完成了这个

 btn_search.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    // fragment=new BBQ();
                    // Intent i=new Intent(getApplicationContext(),
                    // Search_Activity.class);
                    // startActivity(i);

                    ed= (EditText) findViewById(R.id.editText1);


                    if(ed.getVisibility()==arg0.INVISIBLE)
                    {
                        ed.setVisibility(arg0.VISIBLE);
                    }
                    if(ed.getVisibility()==arg0.VISIBLE)
                    {
                        ed.setVisibility(arg0.INVISIBLE);
                    }
    }

对我而言,如果它看不见,那么它会显示但是在第二次点击时它不会看不出我在做什么错误?

5 个答案:

答案 0 :(得分:4)

我会说你应该 - 如果条件:

if(ed.getVisibility()==View.INVISIBLE)  {
   ed.setVisibility(View.VISIBLE);
} else if(ed.getVisibility()==View.VISIBLE)  {
    ed.setVisibility(View.INVISIBLE);
}

或者使用三元运算符:

 ed.setVisibility (ed.getVisibility() != View.VISIBLE ?  View.VISIBLE : View.INVISIBLE);

答案 1 :(得分:2)

试试这个..

具有tag属性初始化的EditText将标记设置为可见,同时提供不可见 setTag("invisible");setTag("visible");

<EditText
        android:id="@+id/url_edittext"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_margin="5dp"
        android:tag="visible" />

<强>代码

if(ed.getTag().equals("visible"))
{
         ed.setVisibility(View.INVISIBLE);
         ed.setTag("invisible");
}
else if(ed.getTag().equals("invisible"))
{
         ed.setVisibility(View.VISIBLE);
         ed.setTag("visible");
}

答案 2 :(得分:1)

编辑代码

if(ed.getVisibility()==arg0.INVISIBLE)
{
 ed.setVisibility(View.VISIBLE);
} else if(ed.getVisibility()==arg0.VISIBLE)
{
 ed.setVisibility(View.GONE);

}

希望这能解决您的问题

答案 3 :(得分:1)

可能是当代码进入第一个if时,稍后你修改了可见性并再次设置为不可见,所以它再次进入第二个if,试试这个:

if(ed.getVisibility()==arg0.INVISIBLE)
{
    ed.setVisibility(arg0.VISIBLE);
} 
else if(ed.getVisibility()==arg0.VISIBLE)
{
    ed.setVisibility(arg0.INVISIBLE)
}

答案 4 :(得分:1)

试试这个:

Boolean isVisible=true;
ed= (EditText) findViewById(R.id.editText1);
btn_search.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {

                   if(isVisible){
             ed.setVisibility(arg0.INVISIBLE);
                  }else{
  ed.setVisibility(arg0.VISIBLE);
}
isVisible=!isVisible;

}