2013-07-03 37 views
0

enter image description here如何隱藏一個項目(按鈕),從菜單中顯示的其他項目(按鈕)在單個活動(在動作條按鈕)

由於附着在截圖時,我在編輯按鈕點擊的話,我想隱藏編輯按鈕並顯示保存按鈕。我怎樣才能做到這一點?

我的菜單文件如下:

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item 
    android:id="@+id/edit_button" 
    android:icon="@drawable/edit_button" 
    android:orderInCategory="100" 
    android:showAsAction="always" 
    android:title="@string/edit"/> 

</menu> 

是否有可能與這個形象,編輯到另一個圖像作爲被點擊一次按鈕時,保存和作爲保存再次點擊按鈕時進行編輯。

回答

1

試試這個

@Override 
    public boolean onOptionsItemSelected(MenuItem item){ 
    { 

      if(editing){ 
        item.setIcon(R.drawable.ic_save); 
      }else{ 
        item.setIcon(R.drawable.ic_edit); 
      } 


     return super.onOptionsItemSelected(menu); 

    } 
+0

謝謝,但我不想改變標題,因爲編輯按鈕是一個圖像...所以我想改變圖像與保存按鈕,而不是編輯按鈕點擊編輯按鈕。 – Ponting

+0

我編輯了我的答案。你是這個意思嗎? –

+0

這有效......謝謝。 – Ponting

0

試試這個,

public boolean checkHide = false 
@Override 
    public boolean onOptionsItemSelected(MenuItem item){ 
     switch(item.getItemId()){ 
     case EDIT: 
      if(checkHide){ 
       checkHide=false; 
       item.setTitle("edit"); 
        // ToDo your function 

       } 
      else{ 
       checkHide=true; 
       item.setTitle("save"); 
        // ToDo your function 
       } 
} 
+0

謝謝,但我不想更改標題,因爲編輯按鈕是一個圖像...所以我想改變圖像與保存按鈕,而不是編輯按鈕點擊編輯按鈕時。 – Ponting

1
final DatePicker dp2 = (DatePicker) findViewById(R.id.datePick2); 
final Button btn2 = (Button) findViewById(R.id.btnDate2); 

dp2.setVisibility(View.GONE); 

dp2.setVisibility(View.INVISIBLE); 

btn2.setVisibility(View.GONE); 

btn2.setVisibility(View.INVISIBLE); 

時需要可見:

​​

或者您使用Invisible或Gone,但不能同時使用!

+0

這可能會幫助我..但我正在採取項目作爲按鈕從菜單中如在actionBar ..所以這是正確的?我寫的是哪種方法:final DatePicker dp2 =(DatePicker)findViewById(R.id.datePick2); final Button btn2 =(Button)findViewById(R.id.btnDate2); dp2。setVisibility(View.GONE); ....... public boolean onCreateOptionsMenu(Menu menu)? – Ponting

1

根據您的意見,你需要比其他要求。

讓不相關的,但改變

<item 
    android:id="@+id/edit_button" 

<item 
    android:id="@+id/edit_or_save_button" 

從名字你應該知道什麼將成爲下一個:

,如果你按下按鈕時,它是一個編輯,比你會做的活動,允許編輯你的數據,但這個按鈕將他的文本(和行動)改爲保存!

當然,您將分配不同的操作偵聽器,它將執行驗證和保存操作。

如果你真的想堅持使用2個按鈕的想法(與高度不同意):

Button edit_button = (Button)findViewById(R.id.edit_button); 
Button save_button = (Button)findViewById(R.id.save_button); 

...

edit_button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     edit_button.setVisibility(View.INVISIBLE); 
     save_button.setVisibility(View.INVISIBLE); 

     DoEdit(v); 
    } 
}); 


save_button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     save_button.setVisibility(View.INVISIBLE); 
     edit_button.setVisibility(View.INVISIBLE); 

     DoValidationAndSave(v); 
    } 
}); 

我希望它解決您的問題!

相關問題