とのコミュニケーション、私はUIの基本構造を学ぶことができますし、コミュニケーションやレイアウトがどのように動作するかを場所を探してきました。しかし、関係なく。私の問題は、フラグメント内のTextViewの値を変更しようとしていることから来ています。私は値を変更しようとするとnullPointerExceptionを取得し続けます。私は断片を参照するために断片マネージャを使用しています。ここで私はAndroidのUIに非常に新しいです、フラグメント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 = (Fragment1)
getSupportFragmentManager().findFragmentById(R.id.fragment1);
そして、:
fragment1.postText("testtext");
マイlogcatを:
5月15日10 :56:42.406 4109-4109/com.archronix.infotainment E/AndroidRuntime:致命的除外:メイン プロセス:com.archronix.infotainment、PID:4109 java.lang.RuntimeException:アクティビティを開始できませんでしたComponentInfo {com.archronix。インフォテインメント/ com.archronix.infotainment.MainActivity}:java.lang.NullPointerExceptionが:アンドロイドでヌルオブジェクト参照 に「ボイドcom.archronix.infotainment.Fragment1.postText(java.lang.String)を」仮想メソッドを起動しようとしています。 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) (andler.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) 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) 'のullオブジェクトリファレンス at com.archronix.infotainment.MainActivity.onCreate(MainActivity.java:102) at android.app.Activity.performCreate(Activity.java:5933) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java) :1105)android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360でandroid.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251で ) )android.app.ActivityThread.access $ 800(ActivityThread.javaで : android.os.Handler.dispatchMessageでandroid.app.ActivityThread $ H.handleMessage(ActivityThread.java:1278) (Handler.java:102)における144) 01ジャワでjava.lang.reflect.Method.invoke(ネイティブメソッド) でandroid.app.ActivityThread.mainでandroid.os.Looper.loop(Looper.java:135) (ActivityThread.java:5221) で.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os。com.android.internal.os.ZygoteInit.mainでZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:899) (ZygoteInit.java:694)私のnewbienessため
謝罪。私は似たような話題に関する20のスタックオーバーフローポストを読んだが、すべて古くなっているか一貫していないようだ。私の仕事を達成する最良の方法は何ですか?ありがとうございました。 onCreateView
で
私は投稿を読んでいます。そして、私はNullPointerExceptionsの仕組みを理解しています。私の問題は、どこでどの変数を使って自分のコードで問題が発生したのかを特定することができます。 –
そのためにデバッガを使用することができます – Daniele
ご覧のとおり、デバッガは、からのメソッドの呼び出し中であることを通知します。なぜ私はNullPointerExceptionを呼び出すのか分かりません。私は私の問題を辿ることができるほど十分にアンドロイドメソッドを理解してもらいたいが、悲しいことに私はそうしない。利用可能なソリューションがある場合はごめんなさい、私は他に何を検索するか分からない。 –