저는 UI의 기본 구조와 통신 및 레이아웃의 작동 방식을 배울 수있는 장소를 찾고 있습니다. 그러나. 내 문제는 조각 내 TextView 값을 변경하려고 시도하는 것으로부터 온다. 값을 변경하려고하면 nullPointerException이 계속 발생합니다. 조각을 참조하기 위해 조각 관리자를 사용하고 있습니다. 여기 프래그먼트와의 통신 NullPointerException
는 조각 코드입니다 :package com.archronix.infotainment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class Fragment1 extends android.support.v4.app.Fragment {
public TextView status;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_fragment1, container,
false);
return v;
}
public static Fragment1 newInstance() {
Fragment1 f = new Fragment1();
return f;
}
public void postText(String str){
status.setText(status.getText()+"\n"+str);
}
}
그리고 이것은 내가 내 조각 관리자 선언하는 방법입니다
fragment1.postText("testtext");
내 로그 캣 : 나는 그것을 사용하는 방법,
fragment1 = (Fragment1)
getSupportFragmentManager().findFragmentById(R.id.fragment1);
을 그리고 :
05-15 10 : 56 : 42.406 4109-4109/com.archronix.infotainment E/AndroidRuntime : 치명적인 예외 : 주 프로세스 : com.archronix.infotainment, PID : 4109 java.lang.RuntimeException : 활동을 시작할 수 없습니다. ComponentInfo {com.archronix. infotainment/com.archronix.infotainment.MainActivity} : java.lang.NullPointerException : null 객체 참조에 대한 가상 메소드 'void com.archronix.infotainment.Fragment1.postText (java.lang.String)'을 호출하려고 시도했습니다. android에서 . android.app에서 android.app.ActivityThread.access $ 800 (ActivityThread.java:144) 에서 android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2360) 에서 app.ActivityThread.performLaunchActivity (ActivityThread.java:2298) .ActivityThread $ H.handleMes sage (ActivityThread.java:1278) at android.os.Handler.dispatchMessage (Handler.java:102) at android.os.Looper.loop (Looper.java:135) at android.app.ActivityThread.main ActivityThread.java:5221) at java.lang.reflect.Method.invoke (네이티브 메소드) at java.lang.reflect.Method.invoke (Method.java:372) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:694) 에 의해 발생 : java.lang.NullPointerException : 가상 메소드 'void com. archronix.infotainment.Fragment1.postText (java.lang.String) '에 대한 android.app.Instrumentation.callActivityOnCreate에서 android.app.Activity.performCreate (Activity.java:5933) (Instrumentation.java에서 com.archronix.infotainment.MainActivity.onCreate (MainActivity.java:102) ULL에서 객체 참조 : 1105) android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2360에서 android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2251에서 ) ) android.app.ActivityThread.access $ 800 (ActivityThread.java에서 : 144) android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1278) android.os.Handler.dispatchMessage (Handler.java:102) 01 android.os.Looper.loop (Looper.java:135)의 android.app.ActivityThread.main (ActivityThread.java:5221) 의 java.lang.reflect.Method.invoke (기본 메소드) at java .lang.reflect.Method.invoke (Method.java:372) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:899) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:694)에서 내 newbieness에 대한
죄송합니다. 비슷한 주제에 관한 20 개의 스택 오버 플로우 게시물을 읽었지만 모두 오래된 것 또는 일관성이없는 것 같습니다. 내 작업을 수행하는 가장 좋은 방법은 무엇입니까? 고맙습니다. onCreateView
에서
게시물을 읽었습니다. 그리고 NullPointerExceptions가 어떻게 작동하는지 이해합니다. 제 문제는 코드에서 어디에서 그리고 어떤 변수로 문제가 발생하는지 식별하는 것입니다. –
해당 디버거를 사용할 수 있습니다. – Daniele
보시다시피, 디버거에서 메서드를 호출 중임을 알립니다. 그 이유가 NullPointerException을 호출하는지 모르겠습니다. 내 문제를 추적 할 수있을만큼 충분히 안드로이드 메소드를 이해했으면 좋겠지 만 슬프게도 나는 그렇지 않습니다. 사용할 수있는 솔루션이 있으면 죄송합니다. 그 밖의 무엇을 검색해야할지 모르겠습니다. –