3 回答
![?](http://img1.sycdn.imooc.com/5333a1a90001c8d802000200-100-100.jpg)
TA贡献1785条经验 获得超8个赞
您可以使用put来传递您想要的值 SharedPreferences
SharedPreferences 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类。您将能够在该类的所有实例中设置并获取这些变量的值。
![?](http://img1.sycdn.imooc.com/5333a1d100010c2602000200-100-100.jpg)
TA贡献1775条经验 获得超11个赞
您可以setArguments(Bundle)在Bundle具有已设置键值对的情况下使用片段的方法。例如,您的片段对象yourFragment,那么你必须
Bundle bundle = new Bundle();
bundle.putString("paramKey", "paramVal");
yourFragment.setArguments(bundle);
在片段的中,onCreateView(LayoutInflater, ViewGroup, Bundle)您可以使用getArguments()方法访问信息。
String value = getArguments().getString("paramKey"); // value = "paramVal"
// inflate, return
请参阅文档,以获取有关设置包值的更多信息。
![?](http://img1.sycdn.imooc.com/54584cd10001404b02200220-100-100.jpg)
TA贡献1828条经验 获得超6个赞
这也可以使用实现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
}
}
希望这可以帮助。
添加回答
举报