他のフラグメントがアクティブなときに、あるフラグメントの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スタジオが本当に新しく、時にはパターンが本当にリニアになることがあります。ご協力ありがとうございました!