FragA と FragB の 2 つのフラグメントがあり、FragA から FragB に文字列を渡したいと考えています。これらの参照を使用しましたhttp://developer.android.com/guide/components/fragments.html#CommunicatingWithActivity & http://developer.android.com/training/basics/fragments/communicating.html
次のステップについてはまだ少し混乱しています。FragA の文字列を FragB に取得するには、このコードに何をする必要がありますか? コードを投稿してください。
私はFragAに持っています:
public class FragA extends ListFragment{
OnDataPass dataPasser;
public interface OnDataPass{
public void onDataPass(String data);
}
@Override
public void onAttach(Activity a) {
super.onAttach(a);
// This makes sure that the container activity has implemented
// the callback interface. If not, it throws an exception
try {
dataPasser = (OnDataPass) a;
} catch (ClassCastException e) {
throw new ClassCastException(a.toString()
+ " must implement OnHeadlineSelectedListener");
}
}
...
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
String libraryList;
//Get the position the user clicked.
Fragment newFragment = null;
libraryList = l.getItemAtPosition(position).toString();
dataPasser.onDataPass(libraryList);
...
}
私の主な活動で私は追加しました:
public class MainActivity extends Activity implements OnDataPass{
...
@Override
public void onDataPass(String data) {
// TODO Auto-generated method stub
}
}
FragB:
public class FragB extends ListFragment{
TestAdapter mDbHelper;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
mDbHelper = new TestAdapter(getActivity());
mDbHelper.createDatabase();
mDbHelper.open();
//Get info from FragA
//Close the database.
mDbHelper.close();
}
}