Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将字符串从FragmentActivity传递到Fragment_Android_Android Fragments_Android Fragmentactivity - Fatal编程技术网

Android 将字符串从FragmentActivity传递到Fragment

Android 将字符串从FragmentActivity传递到Fragment,android,android-fragments,android-fragmentactivity,Android,Android Fragments,Android Fragmentactivity,我能够从活动中获取片段活动中的字符串。但是,如何将数据从FragmentActivity传递到Fragments?不过,我可以在零碎的活动中获取数据 (我不想在SharedReferences中存储数据。) 公共类IndividualDetails活动扩展IndividualBasePager{ 可视寻呼机; 个性化细节基础适配器; 标题页指示器; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceSt

我能够从活动中获取片段活动中的字符串。但是,如何将数据从FragmentActivity传递到Fragments?不过,我可以在零碎的活动中获取数据

(我不想在SharedReferences中存储数据。)

公共类IndividualDetails活动扩展IndividualBasePager{
可视寻呼机;
个性化细节基础适配器;
标题页指示器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.individual_pager);
mAdapter=新的IndividualDetailsBaseAdapter(getSupportFragmentManager());
mPager=(ViewPager)findViewById(R.id.pager);
mPager.setOffscreenPageLimit(4);
mPager.setAdapter(mAdapter);
mIndicator=(TitlePageIndicator)findViewById(R.id.indicator);
mIndicator.setViewPager(mPager);
mIndicator.setCurrentItem(1);
Intent i=getIntent();
getSupportActionBar().setTitle(i.getStringExtra(“名称”);
}
}
公共类IndividualBasePager扩展SherlockFragmentActivity{
个性化细节基础适配器;
可视寻呼机;
页面指示器指示器;
@凌驾
创建时受保护的void(包arg0){
super.onCreate(arg0);
requestWindowFeature(Window.FEATURE\u不确定\u进度);
setTheme(R.style.Theme\u Sherlock\u Light\u DarkActionBar);
ActionBar ActionBar=getSupportActionBar();
actionbar.setDisplayHomeAsUpEnabled(true);
SetSupportProgressBarInDeterminateVibility(真);
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
if(item.getItemId()==android.R.id.home){
完成();
返回true;
}
返回super.onOptionsItemSelected(项目);
}
}
公共类IndividualDetailsBaseAdapter扩展了FragmentPagerAdapter{
受保护的静态最终字符串[]内容=新字符串[]{“注释”,
“详细信息”、“屏幕”、“教程”};
private int mCount=CONTENT.length;
公共个人详细信息BaseAdapter(FragmentManager fm){
超级(fm);
}
@凌驾
公共片段getItem(int位置){
日志e(“页面”、“位置”+位置);
开关(位置){
案例0:
返回新的CommentsFragment();
案例1:
返回新的DetailsFragment();
案例2:
返回新的CommentsFragment();
案例3:
返回新的CommentsFragment();
}
返回null;
}
@凌驾
public int getCount(){
返回mCount;
}
@凌驾
公共字符序列getPageTitle(int位置){
返回IndividualDetailsBaseAdapter.CONTENT[位置%CONTENT.length];
}
公共无效集合计数(整数计数){

如果(count>0&&count,文档建议您使用片段的父活动。您不应该使用片段到片段的通信,这样您就可以在其他地方重用片段,如果需要的话,并保持其可重用性。话虽如此,我还是建议使用放在捆绑包上的附加组件

你这样说:

savedInstanceState.putString("myString", myStingVariable);
myStingVariable = savedInstanceState.getString("myString");
你可以这样得到它们:

savedInstanceState.putString("myString", myStingVariable);
myStingVariable = savedInstanceState.getString("myString");
您还需要检查该值是否为null

注意,对于不同类型的变量,有不同的getter和setter


希望这能有所帮助。

文档建议您使用片段的父活动。您不应该使用片段到片段的通信,这样您就可以在其他地方重用片段,如果需要的话,并保持其可重用性。话虽如此,我还是建议使用放在捆绑包上的附加组件

你这样说:

savedInstanceState.putString("myString", myStingVariable);
myStingVariable = savedInstanceState.getString("myString");
你可以这样得到它们:

savedInstanceState.putString("myString", myStingVariable);
myStingVariable = savedInstanceState.getString("myString");
您还需要检查该值是否为null

注意,对于不同类型的变量,有不同的getter和setter


希望这有帮助。

在片段中,您可以通过调用以下方法获得FragmentActivity
getActivity()
。并在FragmentActivity中创建一个类似
getValue()的方法
将返回您所需的数据。

在片段中,您可以通过调用以下方法获得FragmentActivity
getActivity()
。并在FragmentActivity中创建一个类似
getValue()的方法
它将返回您所需的数据。

您可以在片段中创建一个setter方法,如下所示。从您的活动中,只需调用该方法即可

public class IndividualDetailsBaseAdapter extends FragmentPagerAdapter {
protected static final String[] CONTENT = new String[] { "Comments",
        "Details", "Screens", "Tutorial" };

private int mCount = CONTENT.length;

private String name;
public void setName(String name)
{
  this.name=name;
}


public IndividualDetailsBaseAdapter(FragmentManager fm) {
    super(fm);
}
 ... // Rest of your stuff.
 }
您可以从活动中调用setName方法,如下所示

mAdapter = new IndividualDetailsBaseAdapter(getSupportFragmentManager());
mAdapter.setName(getIntent().getStringExtra("name"));

您可以在片段中创建一个setter方法,如下所示

public class IndividualDetailsBaseAdapter extends FragmentPagerAdapter {
protected static final String[] CONTENT = new String[] { "Comments",
        "Details", "Screens", "Tutorial" };

private int mCount = CONTENT.length;

private String name;
public void setName(String name)
{
  this.name=name;
}


public IndividualDetailsBaseAdapter(FragmentManager fm) {
    super(fm);
}
 ... // Rest of your stuff.
 }
您可以从活动中调用setName方法,如下所示

mAdapter = new IndividualDetailsBaseAdapter(getSupportFragmentManager());
mAdapter.setName(getIntent().getStringExtra("name"));