- Forum-Beiträge: 64
08.12.2017, 15:12:19 via Website
08.12.2017 15:12:19 via Website
Hey Leute, jetzt muss ich doch mal um Hilfe bitten.
Aber eins noch vorweg:
Zerreißt mich jetzt bitte nicht wegen meiner Frage
(Ich habe lange selber nach einer Lösung gesucht, jedoch stehe ich voll auf dem Schlauch :,( - und......als Laie verliere ich denn doch bald die Geduld :/ )
Wie im Titel erwähnt, bekomme ich eine Fehlermeldung, welche wie folgt aussieht:
FATAL EXCEPTION: main
Process: de.testprojekt.testprojekt, PID: 15807
java.lang.RuntimeException: Unable to start activity ComponentInfo{de.testprojekt.testprojekt/de.testprojekt.testprojekt.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2927)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2988)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
at de.testprojekt.testprojekt.MainActivity.onCreate(MainActivity.java:48)
at android.app.Activity.performCreate(Activity.java:6942)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2880)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2988)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1631)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
Der Fehler entsteht - wenn ich dass richtig sehe - in der Main, richtig?
Die MainActivity sieht wie folgt aus:
package de.testprojekt.testprojekt;
import android.content.Intent;
import android.os.Bundle;
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;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
private FangbuchOpenHandler openHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = 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 = findViewById(R.id.nav_view);
navigationView.setNavigationItemSelectedListener(this);
final Button v_button_gut = findViewById(R.id.button_gut);
v_button_gut.setOnClickListener((e) -> ButtonClicked(FangbuchOpenHandler.MOOD_GUT));
final Button v_button_mittel = findViewById(R.id.button_mittel);
v_button_mittel.setOnClickListener((e) -> ButtonClicked(FangbuchOpenHandler.MOOD_MITTEL));
final Button v_button_schlecht = findViewById(R.id.button_schlecht);
v_button_schlecht.setOnClickListener((e) -> ButtonClicked(FangbuchOpenHandler.MOOD_SCHLECHT));
openHandler = new FangbuchOpenHandler(this);
}
@Override
public void onBackPressed() {
DrawerLayout drawer = 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) {
startActivity(new Intent(this, ActivitySettings.class));
return true;
}
return super.onOptionsItemSelected(item);
}
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.btn_1) {
} else if (id == R.id.btn_2) {
} else if (id == R.id.btn_3) {
} else if (id == R.id.btn_4) {
} else if (id == R.id.btn_5) {
} else if (id == R.id.btn_6) {
} else if (id == R.id.btn_7) {
} else if (id == R.id.btn_8) {
} else if (id == R.id.btn_fangbuch) {
startActivity(new Intent(this, ActivityFangbuch.class));
} else if (id == R.id.btn_settings) {
} else if (id == R.id.btn_quit) {
System.exit(0);
}
DrawerLayout drawer = findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
@Override
protected void onPause() {
super.onPause();
openHandler.close();
}
private void ButtonClicked (int mood){
openHandler.insert(mood, System.currentTimeMillis());
Toast.makeText(this, "GESPEICHERT!", Toast.LENGTH_SHORT).show();
}
}
Das Problem taucht erst jetzt auf, nachdem ich die Buttons
click_1, click_2 und click_3 einfügen will.
Vorher lief alles (bis dato ohne Probleme), und jetzt meckert AndroidStudio wegen dem Listener. Ich raffe dass gerade nicht und würde mich freuen wenn mir jemand - OHNE DEN KOPF ABZUREIßEN - bei der Lösung hilft.
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.