簡體   English   中英

如何在單個活動中從菜單(ActionBar中的按鈕)隱藏一個項目(按鈕)並顯示另一個項目(按鈕)

[英]How to hide one item(Button) and show another item(Button) from menu (Buttons in ActionBar) in single Activity

在此處輸入圖片說明

如屏幕截圖所示,當我單擊編輯按鈕時,我想隱藏編輯按鈕並顯示保存按鈕。 我怎樣才能做到這一點?

我的菜單文件如下:

<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>

單擊一次按鈕時是否可以將圖像編輯為另一圖像作為保存,而再次單擊按鈕時是否可以將其另存為編輯。

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

需要何時可見:

btn2.setVisibility(View.VISIBLE);

或者您使用“不可見”或“消失”,但不能同時使用兩者!

嘗試這個

 @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);

    }

根據您的評論,您需要的不是詢問的。

不相關,但更改

<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);
    }
});

希望它能解決您的問題!

嘗試這個,

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
                 }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM