最初のフラグメントのEditText入力を、ボタンクリックの2番目のフラグメントのテキストビューに渡したいとします。しかし、textviewは、ボタンクリックがトリガされたときに "null"値を表示します。フラグメントからフラグメントへEditText
最初のフラグメント:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.first_frag, container, false);
TextView tv = (TextView) v.findViewById(R.id.tvFragFirst);
tv.setText(getArguments().getString("msg"));
Button btn = (Button) v.findViewById(R.id.tryBtn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText woo = (EditText)v.findViewById(R.id.editText);
MainActivity.myBundle.putString("Try", String.valueOf(woo));
switch (v.getId()) {
case R.id.tryBtn:
SecondFragment home = new SecondFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.first_frag, home);
ft.setTransition(FragmentTransaction.TRANSIT_ENTER_MASK);
ft.addToBackStack(null);
ft.commit();
break;
}
}
}
);
return v;
}
第2のフラグメント:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.second_frag, container, false);
TextView tv = (TextView) v.findViewById(R.id.tvFragSecond);
TextView tvTry = (TextView) v.findViewById(R.id.tvTry);
String myValue = (String) MainActivity.myBundle.get("Try");
return v;
}
MainActivity:そのため
public static Bundle myBundle = new Bundle();
ありがとうございました。これは完全に機能しました..ボタンクリックで複数の値を追加するのはどうですか? – randolfrojo11
作成したバンドルに入れてください: bundle.putString( "secondTry"、woo2.getText()。toString());それから引数から取得します。String myValue2 = arguments.getString( "secondTry"); –