2014-04-07 55 views
1

您好所有我想做的事情的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); 
        } 
    } 

對我來說,如果它要是看不見那麼它使人們看到,但是,第二次單擊它不是無形的什麼是錯的我在做什麼?

回答

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); 
+0

ohh..sorry ..你編輯只是now..now其確定.. –

1

編輯代碼

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

}

跳Ë這將解決你的問題,當代碼進入第一如果以後你修改顯示設置,並再次無形

1

的可能,所以它在第二,如果再次進入,試試這個:

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

嘗試這個..

的EditText有tag屬性initility設置標籤爲可見然後同時給予無形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"); 
} 
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; 

}