Diese Frage hat nicht wirklich viel mit Android zu tun. Hier geht es darum, wie Sie Code-Orte mehrfach verwenden können.
Sie könnten Vererbung für diesen Zweck verwenden.
Angenommen, Sie haben 3 verschiedene Aktivitäten, aber Sie möchten, dass sie eine Reihe gemeinsamer Funktionen haben - in Ihrem Fall die ActionBar
.
In diesem Fall könnten Sie eine abstract class
erstellen, die die ActionBar
implementiert und alle Ihre Aktivitäten erben von dieser abstract class
.
Die Hierarchie wie folgt aussehen könnte:
public class MyActivityA extends BaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.oncreate(savedInstanceState); // It's important to call through to super to have it setup the ActionBar for the current activity.
// Next call setContentView(R.layout.my_activity_layout);
// And what else you need to do.
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_a_menu, menu);
return true;
}
}
:
public abstract class BaseActivity extends AppCompatActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.oncreate(savedInstanceState);
// Setup your common ActionBar here.
}
}
nun für diese abstract class
seine Arbeit zu tun, werden Sie alle Ihre Aktivitäten von dieser erben, wie so machen müssen
Und für die nächste Activity
tun Sie das gleiche:
public class MyActivityB extends BaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.oncreate(savedInstanceState);
// Next call setContentView(R.layout.my_activity_layout);
// And what else you need to do.
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_b_menu, menu);
return true;
}
}
die onCreateOptionsMenu
ist in all Ihren Aktivitäten implementiert, um verschiedene Menüpunkte zu erstellen und das gleiche sollte für Ihre onOptionsItemSelected
gehen.
Nun ist dies ein sehr einfaches Beispiel dafür, wie Grundfunktionen für mehrere Klassen teilen und es soll etwas, das man hätte sein müssen gut informiert über vor Sie anfangen zu arbeiten mit Android, wie der obige Code sein üblich ist Java.
Denken Sie auch daran, dass es eine sehr breite Frage ist, die Sie stellen.
Eigentlich wollte ich das nur in einen Kommentar schreiben, aber ich entschied, dass es zu groß werden würde, um in die Kommentare zu passen.