选择哪个按钮出现在工具栏中

Choose which button appears in toolbar

我有一个 activity A 和一个 activity B。我可以在 activity A 中通过两种不同的方式访问 activity B:通过单击添加按钮,或通过单击我的 ListView 的 ContextMenu 的选项修改。

事情是这样的:如果我单击“添加”按钮,我想向该 listView 添加一些内容,但如果我单击“修改”,我想修改该行的值。

但是,当我到达那个 activity B 时,两个按钮都会出现在工具栏中。 但如果我在 activity A 中单击添加,我只需要添加按钮。如果我在修改中单击,我需要 Refresh/Update 按钮。

我已经可以检查我以前用什么方式到达 Activity B,但我不知道如何隐藏另一个按钮,具体取决于我选择的方式。

这是我的菜单:

<item

    android:id="@+id/action_save"
    android:title="Save"
    android:icon="@drawable/ic_action_save"
    app:showAsAction="ifRoom"
    />
<item
    android:id="@+id/action_update"
    android:title="Update"
    android:icon="@drawable/ic_action_update"
    app:showAsAction="ifRoom"
/>

这是 Activity B 上的代码:

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_addcours_notes, menu);
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId())
    {
        case R.id.action_save:

            cours = (EditText)findViewById(R.id.ETCours);
            String nom_cours= cours.getText().toString();

            TextView tv_cours = (TextView)findViewById(R.id.TVCours);

            if(nom_cours.length()<=0 || nom_cours.length()<3)
            {
                Toast ok = Toast.makeText(AjoutCours.this, "Veuillez insérer un nom pour votre cours (minimum 3 caractères).", Toast.LENGTH_SHORT);
                ok.show();
                tv_cours.setTextColor(Color.RED);

            }
            else
            {
                Cours c = new Cours();
                c.setCours(nom_cours);
                dbhelper.Open();
                dbhelper.insertCours(c);

                Intent a = new Intent(AjoutCours.this, AffichageCours.class);
                startActivity(a);
            }
            return true;
        case R.id.action_update:
            Intent intent = this.getIntent();
            String nomcours = intent.getExtras().getString("cours_nom");
            EditText cours =(EditText)findViewById(R.id.ETCours);
            String newcours = cours.getText().toString();
            dbhelper.Open();
            dbhelper.updateCours(newcours,nomcours);
            Intent retour = new Intent(AjoutCours.this,AffichageCours.class);
            startActivity(retour);
        return true;

以下是我如何在 activity B 中产生差异(我从 activity A 中获取额外信息):

Intent intent = this.getIntent();
    if(intent != null)
    {
        String option = intent.getExtras().getString("cours");
        if(option.equals("ajouter"))
        {

        }
        if(option.equals("modifier"))
        {
            String nomcours = intent.getExtras().getString("cours_nom");
            EditText _nomcours=(EditText)findViewById(R.id.ETCours);
            _nomcours.setText(nomcours);
        }
    }

如果您需要更多代码,请告诉我!

谢谢!

像这样:

@Override
    public void onPrepareOptionsMenu(Menu menu) {

     MenuItem item = menu.findItem(R.id.action_save);
      MenuItem item2 = menu.findItem(R.id.action_update);
     if(option.equals("ajouter"))
        {
        item.setVisible(true);
         item2.setVisible(false);
        }else{
         item.setVisible(false);
        item2.setVisible(true);
        }

    }