###前提・実現したいこと
AndroidStudioさわり始めて2,3か月の初心者です
FragmentでActivityにあるメソッドを呼び出して
ActivityからFragmentに戻り値を返したいのですが
戻り途中でエラーが発生するようでアプリが強制終了してしまいます
戻り値の内容はString型です。
中身に関してもエラーは発見できませんでした
どの様にすれば解決できますか
わかりやすく説明していただければ幸いです
動作内容
メソッドを呼び出す→プリファレンス内のデータを読み込む→読み込んだデータを戻り値として返す→TextViewに表示する。
###発生している問題・エラーメッセージ
03-25 01:05:51.854 14737-14737/com.example.syoribuuser.firstopenandfragment E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.syoribuuser.firstopenandfragment, PID: 14737 java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.Window.findViewById(int)' on a null object reference
###該当のソースコード
呼び出し側
java
1package com.example.syoribuuser.firstopenandfragment; 2 3 4import android.content.Intent; 5import android.os.Bundle; 6import android.support.v4.app.Fragment; 7import android.view.LayoutInflater; 8import android.view.View; 9import android.view.ViewGroup; 10import android.widget.ImageButton; 11import android.widget.TextView; 12 13public class Fragment0 extends Fragment { 14 15 @Override 16 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 17 View v = inflater.inflate(R.layout.activity_fragment0, container,false); 18 19 20> TextView textView1 = (TextView)v.findViewById(R.id.name); 21> Main2Activity main2Activit=new Main2Activity(); 22 23> String h= main2Activit.n(); 24> Log.d("debug1",h); 25> textView1.setText(h); 26 return v; 27 28 } 29 30 @Override 31 public void onStart() { 32 super.onStart(); 33 34 final ImageButton imageButton4 = (ImageButton)getActivity().findViewById(R.id.imageButton4); 35 imageButton4.setOnClickListener(new View.OnClickListener() { 36 37 @Override 38 public void onClick(View v) { 39 40 Intent intent = new Intent(getActivity(), Setting.class); 41 startActivityForResult(intent, 0); 42 43 } 44 }); 45 46 } 47 48} 49
呼び出されて戻す側
java
1package com.example.syoribuuser.firstopenandfragment; 2 3import android.content.SharedPreferences; 4import android.os.Bundle; 5import android.support.v4.app.FragmentActivity; 6import android.support.v4.view.ViewPager; 7import android.util.Log; 8import android.widget.TextView; 9 10 11public class Main2Activity extends FragmentActivity { 12 ViewPager viewPager; 13 14 @Override 15 protected void onCreate(Bundle savedInstanceState) { 16 super.onCreate(savedInstanceState); 17 setContentView(R.layout.activity_main2); 18 viewPager = (ViewPager) findViewById(R.id.pager); 19 viewPager.setAdapter( 20 new MyFragmentStatePagerAdapter( 21 getSupportFragmentManager())); 22 23 n(); 24 25 26 } 27 28 public String n(){ 29 30> SharedPreferences preferences = getSharedPreferences("PrefrencesFile", MODE_PRIVATE ); 31 32> String str = preferences.getString("NAME",""); 33 34> Log.d("debug2",str); 35 36> return str; 37 38 } 39 40 41}
###試したこと
戻り値中身の確認
Log.d()利用によるreturnn
###補足情報(言語/FW/ツール等のバージョンなど)
AndroidStudio
java
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。