2017-11-17 11 views
0

ログインしようとするとアプリケーションがクラッシュします。 私はnavigationActivityとして作成しました。私は自分のユーザーに向けてほしいです。しかし、クラッシュし続ける:アプリケーションインテントを使用するとクラッシュします

残念ながら、あなたのアプリは動作を停止しました。

しかし、この行を無効にすると、Toastが表示され、クラッシュしません。

ヘルプ

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

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

と私は持っていてください、私のここでのマニフェスト

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

アプリがクラッシュしたときにスタックトレースを送信します。 –

+0

あなたはコードを投稿できますか? –

+0

私の答えを更新しました。明確でない場合は、あなたのCHomeクラスを入れてください – diegoveloper

答えて

1

があなたのAndroidManifest.xml

UPDATEでの活動として丁目を宣言し、次のように私丁目にあります

あなたの更新された質問を見ました。問題はあなたのCHomeアクティビティにあります。テキストを設定する前にTextViewの参照を取得していません。

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

UPDATE 2

[OK]を、私はあなたがエキストラを使用してパラメータを渡すことができ、あなたはパラメータを渡す必要があると思います。

@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 
    } 

があなたのUserクラスを忘れてはいけない問題は、あなたのonCreateメソッドの内部にある

+0

彼のマニフェストショーで彼はマニフェストにアクティビティを定義しました。 –

+0

私はそれをコメントアウトし、それは働いた..しかし、私は成功した登録の後に私のユーザーの名前を保持する必要がある –

+0

私の答えを更新:)あなたのレイアウトにあなたのtextview参照のIDが存在するかどうかを確認 – diegoveloper

1

をSerializableを実装しています

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

は、その後、あなた丁目のアクティビティクラスに、あなたは余分受信する必要がありますCHomeについては、null TextViewを参照しています。だから、どちらか、あなたは

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

または、多分あなたはそのメソッドを呼び出しましたが、findViewByIdは静かに失敗し、代わりにthroughingのnullを返しますので、あなたがあなたのレイアウトに存在しdoensn'tビューにIDで渡さに電話をするのを忘れました例外。 TextViewでsetText()を呼び出すと、NullPointerexceptionが発生します。

関連する問題