Java 将数据从“扩展活动”的类传递到“扩展片段”的类
我试图做的是将在“扩展活动”类中获得的信息发送到“扩展片段”类,其中“扩展片段”是“PagerAdapter”的一部分 我最初的想法是通过一个意图将信息传递给“扩展片段活动”的类,然后使用“getActivity.getIntent.getExtras”将信息传递给适当的片段,但这似乎不起作用,因为信息必须显示在textView中 下面是我的课程 获取用户信息.java } 这个类所做的是获取用户在EditText上的输入,将它们放入变量中,并通过intent发送这些变量 MainMenu.java 此类包含的是一个方法“getUserInformation”,该方法获取意图,查找EditText id并将意图变量设置为此文本字段 碎片3 在这个类中,我希望在编辑文本框中显示变量,但却很难找到合适的方法来完成此任务 当使用片段而不是普通的活动类时,它会变得更加困难 我只想对我想发生的事情进行一个细分: 1.用户向1次活动输入信息 2.此信息显示在pagerAdapter的一部分片段中Java 将数据从“扩展活动”的类传递到“扩展片段”的类,java,android,eclipse,android-intent,fragment,Java,Android,Eclipse,Android Intent,Fragment,我试图做的是将在“扩展活动”类中获得的信息发送到“扩展片段”类,其中“扩展片段”是“PagerAdapter”的一部分 我最初的想法是通过一个意图将信息传递给“扩展片段活动”的类,然后使用“getActivity.getIntent.getExtras”将信息传递给适当的片段,但这似乎不起作用,因为信息必须显示在textView中 下面是我的课程 获取用户信息.java } 这个类所做的是获取用户在EditText上的输入,将它们放入变量中,并通过intent发送这些变量 MainMenu.ja
任何帮助都将不胜感激 如果您想在创建片段时传递数据,请使用这样的Bundle
Bundle args = new Bundle();
args.putInt("yourStringName", yourSting);
fragment.setArguments(args);
如果您想从片段中联系封闭活动。您可以使用getActivity方法获取活动实例,并调用要调用的函数。在您的情况下,您甚至可以访问与FragmentActivity关联的意图,并从中访问额外的值
在我的例子中,我正在尝试传递一个浮点数,这是否仍然以相同的方式工作,而不是使用args.putinyourstringname,yourString;?另外,我在Fragment3类中是否使用onCreateView下的getActivity,或者我是否必须在Fragment3中创建一个使用getActivity功能的单独方法?重写onActivityCreated方法。您是否可以提供一些代码,说明我如何根据我的结构实现此功能?
public class MainMenu extends FragmentActivity{
DBAdapter db = new DBAdapter(this); //Initiate DB class methods
SectionsPagerAdapter mSectionsPagerAdapter;
ViewPager mViewPager;
//OnCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_menu);
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
}
**UNNCESSARY CODE OMMITED**
public void getUserInformation() {
float maintenance = getIntent().getExtras().getFloat("maintenance");
float grant = getIntent().getExtras().getFloat("grant");
float bursary = getIntent().getExtras().getFloat("bursary");
float barclays = getIntent().getExtras().getFloat("barclays");
float natwest = getIntent().getExtras().getFloat("natwest");
float hsbc = getIntent().getExtras().getFloat("hsbc");
float wallet = getIntent().getExtras().getFloat("wallet");
EditText maintenanceTxt = (EditText)findViewById(R.id.fragment3_maintenance);
EditText grantTxt = (EditText)findViewById(R.id.fragment3_grant);
EditText bursaryTxt = (EditText)findViewById(R.id.fragment3_bursary);
EditText barclaysTxt = (EditText)findViewById(R.id.fragment3_barclays);
EditText natwestTxt = (EditText)findViewById(R.id.fragment3_natwest);
EditText hsbcTxt = (EditText)findViewById(R.id.fragment3_hsbc);
EditText walletTxt = (EditText)findViewById(R.id.fragment3_wallet);
maintenanceTxt.setTextSize(maintenance);
grantTxt.setTextSize(grant);
bursaryTxt.setTextSize(bursary);
barclaysTxt.setTextSize(barclays);
natwestTxt.setTextSize(natwest);
hsbcTxt.setTextSize(hsbc);
walletTxt.setTextSize(wallet);
}
MORE UNNECESSARY CODE OMITTED
public class Fragment3 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment3, container, false);
//Set date to TextView
long date = System.currentTimeMillis();
SimpleDateFormat sdf = new SimpleDateFormat("MMM d, yyyy");
String dateString = sdf.format(date);
TextView t = (TextView) root.findViewById(R.id.textView_date3);
t.setText(dateString);
return root;
}
Bundle args = new Bundle();
args.putInt("yourStringName", yourSting);
fragment.setArguments(args);