2017-11-17 3 views
0

Meine Anwendung stürzt ab, nachdem ich versucht habe, mich anzumelden. ich erstellt navigationActivity als CHome, die ich möchte, dass mein Benutzer zu werden. Aber es stürzt ständig ab:Anwendung stürzt ab, wenn Intent verwendet wird

Leider funktioniert Ihre App nicht mehr.

Aber wenn ich diese Zeilen deaktiviert unten zeigt es die Toast und keinen Absturz.

Hilfe bitte

Toast.makeText(LoginActivity.this, "CUSTOMER",Toast.LENGTH_SHORT).show(); 

Intent cHome = new Intent(LoginActivity.this, CHome.class); 
Common.currentUser = user; 
startActivity(cHome); 
finish(); 

und ich habe mein Manifest hier

meine Chome ist wie folgt

package com.example.oracle.eliteafro; 

import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
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; 
import android.widget.TextView; 

//import com.example.oracle.eliteafro.Common.Common; 
//import com.google.firebase.database.DatabaseReference; 
//import com.google.firebase.database.FirebaseDatabase; 

public class CHome extends AppCompatActivity 
     implements NavigationView.OnNavigationItemSelectedListener { 

    //Init Firebase 
    //FirebaseDatabase database; 
    // DatabaseReference salons; 

    TextView loginName; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_chome); 


     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     toolbar.setTitle("Menu"); 
     setSupportActionBar(toolbar); 



     //Init Firebase 
     // database = FirebaseDatabase.getInstance(); 
     //salons = database.getReference("el_af_salon"); 



     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); 


     //set name for user 
     View headerView = navigationView.getHeaderView(0); 
     loginName = (TextView) findViewById(R.id.loginName); 
     loginName.setText("Beedy"); 
     //loginName.setText(Common.currentUser.getFullname()); 

    } 

    @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.chome, 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) { 
     // Handle navigation view item clicks here. 
     //int id = item.getItemId(); 

//  if (id == R.id.nav_camera) { 
//   // Handle the camera action 
//  } else if (id == R.id.nav_gallery) { 
// 
//  } else if (id == R.id.nav_slideshow) { 
// 
//  } else if (id == R.id.nav_manage) { 
// 
//  } else if (id == R.id.nav_share) { 
// 
//  } else if (id == R.id.nav_send) { 
// 
//  } 

     DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     drawer.closeDrawer(GravityCompat.START); 
     return true; 
    } 
} 
+0

Veröffentlichen Sie Ihre Stack-Trace, die Sie erhalten, wenn Ihre App abstürzt. –

+0

Können Sie den Code CHome posten? –

+0

Ich aktualisierte meine Antwort, wenn es nicht klar ist, bitte setzen Sie Ihre CHome-Klasse – diegoveloper

Antwort

1

Deklarieren Chome als Aktivität in AndroidManifest.xml

UPDATE

Ich sah Ihre aktualisierte Frage, so ist das Problem auf Ihrer CHome-Aktivität, Sie erhalten nicht die Referenz Ihrer TextView vor dem Festlegen des Textes.

TextView yourTextView = findViewById(R.id.your_text_view_id); 
yourTextView.setText("your text"); 

UPDATE 2

Ok, denke ich, dass Sie Parameter übergeben müssen, können Sie Parameter mit Extras passieren könnte.

Intent cHome = new Intent(LoginActivity.this, CHome.class); 
cHome.putExtra("user", user); 
startActivity(cHome); 
finish(); 

Dann auf Ihrer Chome Aktivitätsklasse müssen Sie erhalten die Extra:

@Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.yourlayout); 
     User user = (User) getIntent().getSerializableExtra("user"); 
     //now you can use your user object 
     TextView yourTextView = findViewById(R.id.your_text_view_id); 
     yourTextView.setText(user.getName()); // for example 
    } 

nicht Ihre Benutzerklasse Vergessen Sie hat Serializable implementiert

+0

Seine Manifest-Show hat er die Aktivität im Manifest definiert. –

+0

Ich habe es auskommentiert und es hat funktioniert .. aber ich brauche es, um den Namen meines Benutzers nach erfolgreicher Registrierung zu halten –

+0

Ich aktualisierte meine Antwort :), überprüfen Sie, ob die ID Ihres textview Verweis auf Ihrem Layout vorhanden sind – diegoveloper

1

Das Problem innerhalb Ihrer onCreate Methode ist Für CHome sind Sie ein Null-TextView. Also entweder, vergessen Sie

TextView textView = findViewById(R.id.your_text_view_id); 

Oder anrufen, vielleicht hast du das Verfahren nennen, aber Sie bestanden in einer ID zu einer Ansicht, die in Ihrem Layout doensn't existieren, weil findViewById lautlos fehl und null zurück statt throughing eine Ausnahme. Wenn Sie also setText() in der TextView aufrufen, erhalten Sie eine NullPointerexception.

Verwandte Themen