2017-12-29 59 views
-1

私のアプリでユーザープロファイルセクションを作成しようとしています。ログインアクティビティでは、FirebaseAUTH.getCurrentUser()。getDisplayName()からユーザー名を尋ねて、文字列で保存します。XMLファイルの文字列を編集

メインアクティビティ用のxmlファイルには、プレースホルダを含む文字列を含むtextViewを配置します。

私は

に。これを解決する方法上の任意のヒントを.formatなど.setTextにログインし、主な活動Javaファイルの両方で試してみましたが、テキストだけでdoesntの変更?

public class MainActivity extends AppCompatActivity 
    implements NavigationView.OnNavigationItemSelectedListener { 
    private HomeFragment hf; 
    private WebViewFragment wvf; 

    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    firebaseAuth = FirebaseAuth.getInstance(); 
    if (firebaseAuth.getCurrentUser().getDisplayName() != null) { 
     String name = firebaseAuth.getCurrentUser().getDisplayName(); 
     final TextView profile = (TextView)findViewById(R.id.profile_section); 
     profile.setText("Test"); 
    } 

E/AndroidRuntime:致命的な例外:メイン プロセス:com.example.vreeni.firebaseauthentiction、PID:6060 java.lang.RuntimeException:活性ComponentInfo {com.example.vreeni.firebaseauthentictionを開始できません/ com.example.vreeni.firebaseauthentication.MainActivity}:java.lang.NullPointerException:android.appのヌルオブジェクト参照 に仮想メソッド 'void android.widget.TextView.setText(java.lang.CharSequence)'を呼び出そうとしています。 ActivityThread.performLaunchActivity(ActivityThread.java:2822) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2897) android.app.Activit yThread.-wrap11(不明な情報源:0) android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1598) (android.os.Handler.dispatchMessage(Handler.java:105)) はandroid.osです。 Looper.loop(Looper.java:251) android.app.ActivityThread.main(ActivityThread.java:6563) at java.lang.reflect.Method.invoke(ネイティブメソッド) at com.android.internal.os .Zygote $ MethodAndArgsCaller.run(Zygote.java:240) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 原因:java.lang.NullPointerException:仮想メソッド 'voidを呼び出しようとしました。 android.widget.TextView.setText(java.lang.CharSequence) 'ヌルオブジェクトリファレンス com.example.vreeni.firebaseauthentication.Ma android.app.Activity.performCreateでinActivity.onCreate(MainActivity.java:52) android.app.Instrumentation.callActivityOnCreateで(Activity.java:6975) (Instrumentation.java:1214)

+0

文字列リソースを変更しますか?不可能です。しかし、TextViewまたはEditTextのテキストを変更することはできます。 –

+0

はい、私が望んでいたものです。うーん、どうすればいいですか?私はナビゲーション・ドロワーのセクションに、ユーザー名の後にfirebaseAuth.getCurrentUser()。getDisplayName()から取得できるユーザー名を続けたいと思っています。助けてくれてありがとう! – Vee

+0

ここで定義されているように、XMLファイル内のtextviewが同じIDであることを確認しますか? –

答えて

0

あなたは見つけることができますthis resourceの上部にある単純な例です。

public class MainActivity extends Activity { 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     final TextView helloTextView = (TextView) findViewById(R.id.text_view_id); 
     helloTextView.setText(R.string.user_greeting); 
    } 
} 

まだ問題が解決しない場合は、コードを入力してください。

+0

がコードとエラーメッセージ – Vee

+0

で更新されました。可変プロファイルはnullです。あなたのactivity_main.xmlも提供してください。 – Yuliwee

関連する問題