2017-12-30 9 views
2

レートをデフォルト値= "0"に設定しますが、結果はnullです。それが必要のように(金額はRider.classに追加されている)率の値は、Firebaseのテーブルに追加されることはありません...デフォルト値を設定しますが、結果はnullです

修正するためにどのように任意のアイデアをいただければ幸いです....

nav_header_home

<TextView 
      android:id="@+id/txtStars" 
      android:text="4" 
      android:layout_weight="1" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" /> 

ホーム

// properties: 
Textview txtStars; 

// onCreate: 
View navigationHeaderView = navigationView.getHeaderView(0); 
txtStars = navigationHeaderView.findViewById(R.id.txtStars); 
txtStars.setText(String.format("%s", Common.currentUser.getRates())); 

MainActivity自動ログイン方法でMainActivity

// showRegisterDialog() ... 

// Register new user 
      auth.createUserWithEmailAndPassword(edtEmail.getText().toString(), 
        edtPassword.getText().toString()) 
        .addOnSuccessListener(new OnSuccessListener<AuthResult>() { 
         @Override 
         public void onSuccess(AuthResult authResult) { 
          // Save user to db 
          Rider rider = new Rider(); 
          rider.setRates("0");//<---- default value 

Home.java

@SuppressWarnings("StatementWithEmptyBody") 
@Override 
public boolean onNavigationItemSelected(MenuItem item) { 
    // Handle navigation view item clicks here. 
    int id = item.getItemId(); 

    if (id == R.id.nav_signOut) { 
     signOut(); 

    } else if (id == R.id.nav_updateInfo) { 
     showUpdateInfoDialog(); 
    } 

    return true; 
} 

....(それは自動ログインを持っているので)、また、追加する必要がありました。

// fetch data an save to variable 
        FirebaseDatabase.getInstance().getReference(Common.user_rider_tbl) 
          .child(FirebaseAuth.getInstance().getCurrentUser().getUid()) 
          .addListenerForSingleValueEvent(new ValueEventListener() { 
           @Override 
           public void onDataChange(DataSnapshot dataSnapshot) { 
            Common.currentUser = dataSnapshot.getValue(Rider.class); 

            waitingDialog.dismiss(); 

            Intent i = new Intent(RiderActivity.this, 
              Home.class); 
            startActivity(i); 
            finish(); 
           } 

           @Override 
           public void onCancelled(DatabaseError databaseError) {} 
          }); 

、txtStars = nullを

+0

ゲッターとセッターメソッドを定義するクラスを投稿することができます。その結果、null値が割り当てられている理由がわかります – Aaron

+0

@AaronはRider.classを追加しました – LizG

+0

最後に、スクリーンショットを印刷したり、エラーログも表示されます。 – Aaron

答えて

3

をデバッグするときは、レートがゼロであるためには、デフォルト値を設定したい場合は、変数を初期化しているとき、私はちょうどゼロにその値を設定します。

private String rates = "0"; 

または、次のようにコンストラクタでデフォルト値を設定することができます。

public Rider() {this.rates = "0";} 

をそのように速度の値は、常に私はそれがうまくいく方法を知ってみましょう、ゼロのデフォルト値を持つことになります! :)

+0

まだヌルとして表示 – LizG

+0

それ以外はすべてそれぞれのデフォルト値で正しく設定されていますか? – Aaron

+0

はい、それ以外はうまくいきます。 – LizG

関連する問題