2017-12-29 18 views
-1

내 앱에서 사용자 프로필 섹션을 만들려고합니다. 로그인 활동에서 FirebaseAUTH.getCurrentUser(). getDisplayName()에서 사용자 이름을 묻고 문자열에 저장합니다.XML 파일의 문자열 편집

주 활동을위한 내 xml 파일에는 placeholder가 들어있는 문자열이있는 textView를 넣습니다.

나는 로그인 및 .format 등 .setText의 주요 활동 자바 파일을 모두 시도했지만 텍스트 단순히 나던 변화 ..

에 어떤 힌트는 어떻게이 문제를 해결하기 위해?

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의 null 객체 참조 에서 가상 메소드 'void android.widget.TextView.setText (java.lang.CharSequence)'를 호출하려고 시도했습니다. ActivityThread.performLaunchActivity (ActivityThread.java:2822) at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2897) at android.app.Activit 0Thread.-wrap11 (알 수없는 출처 : 0) 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) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:767) 발생 원인 : java.lang.NullPointerException : 가상 메소드 'void를 호출하려고 시도했습니다. null 객체 참조에 대한 android.widget.TextView.setText (java.lang.CharSequence) ' at com.example.vreeni.firebaseauthentication.Ma android.app.Instrumentation.callActivityOnCreate에서 android.app.Activity.performCreate (Activity.java:6975) 에서 inActivity.onCreate (MainActivity.java:52) (Instrumentation.java:1214은)

+0

문자열 리소스를 변경 하시겠습니까? 그것은 불가능합니다. TextView 또는 EditText에서 텍스트를 변경할 수 있습니다. –

+0

네, 그게 내가 원하는 걸 ... 음, 어떻게 그럴 수 있니? 내비게이션 드로어에 사용자 이름 뒤에 firebaseAuth.getCurrentUser(). 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