2016-09-25 2 views
0

Ich habe folgenden Code in allen Activity-Dateien. Ich werde das gleiche Menü für alle Aktivitäten verwenden. Hier ist der Code.Menü verschwand nach dem Erweitern der Aktivität mit BaseActivity

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

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId();  
    if (id == R.id.action_settings) { 
     return true; 
    }  
    return super.onOptionsItemSelected(item); 
} 

Statt diesen Code in alle Aktivitäten der Duplizierung, habe ich eine BaseActivity mit Code folgen.

public class BaseActivity extends Activity { 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    }  
    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     int id = item.getItemId();  
     if (id == R.id.action_settings) { 
      return true; 
     }  
     return super.onOptionsItemSelected(item); 
    } 
} 

Nun sind alle Aktivitäten erweitern BaseActivity wie unten.

public class AddItemActivity extends BaseActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_add_item); 
    }  
} 

Problem

Menü wird aufgrund obigen Code verschwunden. Mache ich etwas falsch?

Antwort

1

ändern unterhalb der Linie:

public class BaseActivity extends Activity 

auf unter

public class BaseActivity extends AppCompatActivity 

ich wahrscheinlich ein einfaches Projekt erstellt, was Sie brauchen. Bitte überprüfen Sie es hier: https://github.com/briannl/OptionMenuExample

+0

können Sie sagen, wo mache ich falsch? – Pankaj

+0

Es scheint nichts falsch zu sein, aber in meinem Code habe ich AppCompatActivity anstelle von Activity verwendet, ich denke, es ist nicht wichtiger, aber ich bin etwas anders.Sie geben mir nur ein Stück Code-Schnipsel, also mache ich nicht was falsches im Projekt, könnte ich nichts falsch hier (diesen Code, den Sie zur Verfügung stellen), aber von irgendwo passiert. – Brian

Verwandte Themen