Greensy 的答案是一个有效的选择(我支持他),但您也可以避免在片段之间进行太多的 DataPassing,让 Activity 成为所有这些的管理者。
为此,您可以在片段中创建公共方法和接口,并让/强制活动实现接口。
简单的例子:
public class Act extends Activity implements OnClickListener{
@Override
OnClick(View v){
if(v.getId()==R.id.btn_recordData){
fragA.startRecording();
}
}
}
那么 FragA 你必须创建该方法:
public class FragA extends Fragment{
private boolean isRecording
public void startRecording(){ isRecording = true; // also init the sensor stuff }
public void stopRecording() { isRecording = false; // also stop the sensor stuff }
}
然后在 FragB 你可以:
public class FragB extends Fragment{
onCreateView(...){
// initialise all the views and find the button, let's call it Button btn;
btn.setOnClickListener((OnClickListener)getActivity());
}
}
那有意义吗?