Ich möchte, dass durch das RelativeLayout (id: account_test) eine neue Seite aufgerufen wird. Dazu verwende ich den FragmentManager. Im setOnCllickListener wird einfach ein wert zurückgegeben. Dieser wert wird in einer if-Verzweigung verglichen und wenn dies übereinstimmt, dann kommt der FragmentManager ins Spiel.
Java-Code:
public class Sidebar extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{
String id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sidebar);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
//Initialising Components of layouts
//Search
//Settings
ImageView account = (ImageView)(findViewById(R.id.account_image));
ImageView accountImageActionSettings = (ImageView) findViewById(R.id.account_image);
View aboutMeImageActionSettings = findViewById(R.id.about_me);
View generalImageActionsettings = findViewById(R.id.general);
RelativeLayout test = (RelativeLayout)findViewById(R.id.account_test);
test.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
id = "test";
}
});
FragmentManager fragmentManager = getFragmentManager();
if (id.equals("test") )
{
fragmentManager.beginTransaction().
replace(R.id.content_frame,
new Settings())
.commit();
}
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
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.setDrawerListener(toggle);
toggle.syncState();
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
} }
Android-Monitor: FATAL EXCEPTION: main Process: com.vincenzkruesmann.smartifact, PID: 10322 java.lang.RuntimeException: Unable to start activity ComponentInfo{ com.vincenzkruesmann.smartifact/com.vincenzkruesmann.smartifact.Sidebar}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RelativeLayout.setOnClickListener(android.view$OnClickListener)