Sono un novizio per Android e mi chiedevo se qualcuno potesse guidarmi su come riutilizzare la barra delle azioni in tutte le mie attività Android. Per quanto ho esplorato, ho scoperto che dobbiamo creare una classe BaseActivity ed estenderla nella nostra attività in cui vogliamo riutilizzarla, e inoltre dobbiamo creare un layout xml e includerlo nel nostro file xml di attività. Ho finito con la parte BaseActivity. Ora sono un po 'confuso nell'inquadrare la parte xml e includerla. So come unire e includere un layout, ma nel caso di Action Bar, quali passi necessari devono essere presi. Qualsiasi aiuto sarebbe apprezzato.Riutilizzare la barra delle azioni in tutte le attività dell'app
Questo è il mio BaseMenuActivity:
public class BaseMenuActivity extends Activity{
ActionBar actionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setIcon(R.drawable.ic_social_share);
LayoutInflater inflator = (LayoutInflater) this
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflator.inflate(R.layout.apptitle, null);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setCustomView(v);
}
}
parte Manifesto per la stessa:
<activity
android:name="com.example.travelplanner.MenuActivity"
android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden"
android:uiOptions="splitActionBarWhenNarrow"
android:label="WeTrip"
android:theme="@style/MyTheme" >
Style.xml parte:
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#F0F1F1</item>
<item name="android:backgroundSplit">#000000</item>
</style>
MenuActivity.java
public class MenuActivity extends BaseMenuActivity implements OnItemClickListener{
ActionBar actionBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_menu);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu, menu);
SearchView searchView = (SearchView) menu.findItem(R.id.menu_action_search).getActionView();
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch(item.getItemId()){
case R.id.menu_action_search:
{}
case R.id.menu_action_locate:
{}
case R.id.menu_action_mail:
{}
case R.id.menu_action_call:
{}
}
return super.onOptionsItemSelected(item);
}
}
quindi, se ho capito bene, vuoi solo avere la stessa barra di azione attraverso la tua app? – tyczj
si..ma non so come ottenerlo correttamente. Perché so che devo creare una classe BaseActivity e devo estenderla, e inoltre devo creare un file xml e includerlo in ogni attività Voglio visualizzare la stessa barra di azione .. ma ho bisogno di una guida su di esso – divyang7
puoi imposta il tema dell'applicazione nel tuo manifest in modo da non doverlo impostare per ogni singola attività nel tuo manifest. Dovrai comunque dargli il punto di vista in ogni attività. Se non vuoi farlo, ti suggerisco di guardare i frammenti di commutazione invece delle attività – tyczj