- Forum-Beiträge: 81
24.12.2017, 13:57:58 via Website
24.12.2017 13:57:58 via Website
Schone Festtage allerseits.
Ich bin an der Entwicklung einer App für welche ich das Android Studio die Activity Navigation Dower und das Layout mitttels Fragments erstellt habe.
Die App funktioniert so wie ich mit es vorstelle, der einzige "Schönheitsfehler" ist, wenn man die App aufruft kommt man anscheinend auf eine leeren Bildschirm, weil in der MainActiviti.java nut das leere Framelayout aufgerufen wird.
Meine Frage ist jetzt wie kann ich noch einen zusätzlichen Startbildschirm einfügen, der direkt auf ein Fragment im Projekt verweist, so das der Benutzer nicht erst auf eine leeren Bildschirm kommt.
Die MainActivity.java sieht so aus.
package com.example.petra.accessibilitydemonstration;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
drawer.addDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
}
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
Fragment fragment = null;
int id = item.getItemId();
if (id == R.id.nav_welcome) {
fragment = new WelcomeFragment();
} else if (id == R.id.nav_table) {
fragment = new TableFragment();
} else if (id == R.id.nav_table_accessible) {
fragment = new TableAccessibleFragment();
} else if (id == R.id.nav_about_us) {
fragment = new AboutFragment();
}
if (fragment != null){
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.screen_area, fragment);
ft.commit();
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
}
Ich werde versuchen, das gesamte Projekt auf GitHup hochzufrieden, damit ihr es anschauen könnt.
Im Internet habe ich Anleitungen gefunden wie man Splash Screen erstellt, da aber die ActivityMain.java wegen des Navigation drower komplizierter ist als normalerweise bin ich nicht sicher an welcher Stelle ich den Code einfügen muss.
Jetzt wünsche ich allen noch einen schönen und besinnlichen Weihnachtstag und ein gutes 2018.
Petra Ritter
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.