在Activity中定义一个接口,包含将要传递的数据作为参数。然后,让该Activity实现该接口。接着,在Fragment中创建该接口的一个实例,并在onAttach方法中将Activity强制类型转换为该接口的实例。这样,Fragment就可以调用接口的方法并获取Activity中传递的数据了。
下面是一个示例代码:
在Activity中定义接口并实现:
public interface OnDataPass {
void onDataPass(String data);
}
public class MainActivity extends AppCompatActivity implements OnDataPass {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onDataPass(String data) {
// do something with the data
}
}
在Fragment中创建接口实例并将Activity强制类型转换为接口:
public class MyFragment extends Fragment {
private OnDataPass dataPasser;
@Override
public void onAttach(Context context) {
super.onAttach(context);
try {
dataPasser = (OnDataPass) context;
} catch (ClassCastException e) {
throw new ClassCastException(context.toString() + " must implement OnDataPass");
}
}
private void sendData(String data) {
dataPasser.onDataPass(data);
}
}
使用sendData方法将数据传递给Activity:
sendData("data to be passed");