나는이 같은 활동의 다른 조각의 버튼 클릭에 조각의 텍스트 뷰의 텍스트를 변경하려고 원인이 조각에 텍스트를 추가합니다.방법은 널 포인터
onCreateView는
TextView deckSize;
같은 코드는 ONSTART 방법에서 잘 작동
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.deckbuilder_fragment, container,
false);
return view;
}
내가 텍스트 뷰가 onCreateView와 ONSTART 사이 방법의 외부 선언 한 클래스의 상단에 반환 onCreateView와 deckSize() 사이.
public void onStart() {
super.onStart();
deckSize = (TextView) getView().findViewById(R.id.decksize);
final SharedPreferences defaultDeck = getActivity()
.getSharedPreferences("defaultDeck", Context.MODE_PRIVATE);
deckSize.setText(String.valueOf(defaultDeck.getInt("decksize", 0)));
}
하지만 널 포인터가 줄에서 여기에 어떻게 180
public void deckSize() {
deckSize = (TextView) getView().findViewById(R.id.decksize); //line 180
final SharedPreferences defaultDeck = getActivity()
.getSharedPreferences("defaultDeck", Context.MODE_PRIVATE);
deckSize.setText(String.valueOf(defaultDeck.getInt("decksize", 0)));
}
이것은 텍스트 뷰 내가 내장 텍스트 뷰가 있습니다.에 상주하는 조각으로 코딩하는 방법입니다 이 fragment의 XML 레이아웃 파일 이상하게도,이 방법 안에이 정확한 코드는 더 클래스 트리에서까지 같은 조각의 ONSTART 방법도 있고 그것을 잘 작동합니다. 나는 TextView deckSize를 onStart 메소드보다 먼저 클래스에서 선언했다. 다음은 관련된 logcat 텍스트입니다.
FATAL EXCEPTION: main
java.lang.NullPointerException
at com.maliciousgames.deckbuilder.DeckBuilderFragment.deckSize(DeckBuilderFragment.java:180)
at com.maliciousgames.deckbuilder.DeckBuilder.deckSize(DeckBuilder.java:35)
at com.maliciousgames.deckbuilder.BlockCardBrowserFragment$2.onClick(BlockCardBrowserFragment.java:105)
at android.view.View.performClick(View.java:4240)
at android.view.View$PerformClick.run(View.java:17721)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
라인 (180) 내가 부모 활동
public void deckSize() {
DeckBuilderFragment deckBuilderFragment = new DeckBuilderFragment();
deckBuilderFragment.deckSize();
}
의 방법에서이 deckSize 방법에 호출하고이 라인
deckSize = (TextView) getView().findViewById(R.id.decksize);
내가 부모의 메소드에 호출하고 이
((DeckBuilder) getActivity()).deckSize();
01,235,164 같은 동일한 상위에있는 다른 활성 단편에서 활동
난 아직 안드로이드와 자바 상당히 새로운 오전 정말 사람이 줄 수있는 어떤 도움이나지도를 부탁드립니다.
내 가정은 내가해야, 메소드의 getView()가 당신이 onCreateView이 – Gustavo
원인 null 값을 통해 findViewById를 호출하기 때문에 당신의 시도를 null을 반환하는 것입니다 언급했다. onCreateView가 이미 반환되었습니다. 실제로 나를 던지는 것은 onStart에서 정확히 동일한 코드에 null 포인터를 얻지 못한다는 것입니다. onStart는 onCreateView가 반환 된 후에도 실행됩니다. 나는 더 많은 코드를 보여주기 위해 나의 질문을 편집했다. –
죄송 돌아올 때까지이 기능의 getView가 null이 될 것입니다 호출 어디 nullpointer – Trent