2016-04-22 10 views
0

他のフラグメントがアクティブなときに、あるフラグメントのEditTextを変更しようとしています。しかし、何も起こりません。私は通常のメソッド呼び出しでこれをやっていますが、私はそれがその時点でフラグメントに対してアクティブではないビューと関係があると思われます。例外は一切ありません。もし私が何か重要なことを忘れてしまったら、申し訳ありませこれが私の最初の質問です。有効でないフラグメント内のEditTextを変更する

public class FirstFragment extends Fragment { 

    private EditText textView_Text; 

    @Override 
    public View onCreateView(LayoutInflater inflater, 
         ViewGroup container, Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.first_fragment_layout, container, false); 
    } 

    @Override 
    public void onViewCreated(View view, Bundle savedInstanceState) { 

     super.onViewCreated(view, savedInstanceState); 
     this.mainView = view; 

     textView_Text = (EditText)view.findViewById(R.id.dateTextView); 
    } 

    public void setText(String text){ 
     textView_Text.setText(text); 
    } 

} 

// MainActivity

public class MainActivity extends AppCompatActivity { 

    private FragmentManager fragmentManager; 
    private FragmentTransaction fragmentTransaction; 

    private FirstFragment firstFragment; 
    private SecondFragment secondFragment; 

    private DateRegisterCallback dateRegisterCallback; 


    public WorkRegisterActivity(){ 
     fragmentManager = getFragmentManager(); 
     firstFragment = new FirstFragment(); 
     secondFragment = new SecondFragment(); 

     SecondFragmentCallback secondFragmentCallback = new SecondFragmentListener(); 
     SecondFragment.setCallback(SecondFragmentCallback); 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     changeFragment(firstFragment); 

    } 

    private void changeFragment(Fragment fragment){ 
     fragmentManager = getFragmentManager(); 
     fragmentTransaction = fragmentManager.beginTransaction(); 
     fragmentTransaction.replace(android.R.id.content, fragment); 
     fragmentTransaction.commit(); 
    } 

    private class SecondFragmentListener implements SecondFragmentCallback{ 
     @Override 
     public void callback(String stuff){ 
      changeFragment(firstFragment); 
      firstFragment.setText(stuff); 
    } 
} 

コールバックおよび他のすべて作品。私はLog.dを使って試してみたところ、その情報はフラグメントによって受け取られました。しかし、その見方は変わらない。 したがって、SecondFragmentのコードを書くのに最適ではありませんでした。

私はAndroidスタジオが本当に新しく、時にはパターンが本当にリニアになることがあります。ご協力ありがとうございました!

答えて

0

SharedPreferencesを使用して、希望のテキスト値を保存し、2番目のフラグメントを表示するときは、SharedPreferencesからテキストを取得し、テキストビューに読み込むことをお勧めします。

関連する問題