您可以使用put来传递您想要的值 SharedPreferencesSharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences.Editor edit = prefs.edit(); edit.putString("some_key",someValue); //someValue is a var that containns the value that you want to pass edit.commit();然后在您的片段中,访问值:SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);String value = prefs.getString("some_key","default_value");另一种效率较低的方法创建一个将包含所有静态变量的Utility类。您将能够在该类的所有实例中设置并获取这些变量的值。
这也可以使用实现Java接口这样的在Activity类中定义一个接口。在提交片段时捕获接口实例,该片段随后将用于将数据发送到片段。 class ExampleActivity extends Activity { //Data listener to be implemented by the fragment class public interface OnDataListerner{ public void sendData(ArrayList<String> data); } //DataListener instance to be captured while committing fragment OnDataListener fragment; //commit your fragment and type cast it to OnDataListener private void commit Fragment(){ fragment = new ExampleFragment(); FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.fragment_container, exampleFragment); transaction.addToBackStack(null); transaction.commit(); } //used to send data through interface methods which will be defined in fragment public void sendDataToFragment(){ fragment.sendData(Your data to be send); } }在您的Fragment类中实现此接口,一旦Acitivity在此接口上调用任何方法,它将在此Fragment中调用公共类ExampleFragment扩展Fragment实现ExampleActivity.OnDataListerner {//interface callback which is called when Activity call its method. public void sendData(ArrayList<String> data){ //Here is your data which can be consumed }}希望这可以帮助。