我想要做的就是将一个'扩展活动'的类中获得的信息发送到'扩展片段'类这个'扩展片段'是'PagerAdapter'的一部分我最初的想法是将信息通过意图传递给'扩展片段活动'的类,然后使用'getActivity()将信息传递给适当的片段“ .getIntent.getExtras()',但这似乎不起作用,因为信息必须在textView中显示。从'扩展活动'的类传递数据到'扩展片段'的类
我的类显示如下..
ObtainUserInformation.java
public class ObtainUserInformation extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.obtain_user_information);
}
public void submitInformation(View view){
EditText maintenanceTxt = (EditText)findViewById(R.id.obUserInfo_maintenence);
EditText grantTxt = (EditText)findViewById(R.id.obUserInfo_grant);
EditText bursaryTxt = (EditText)findViewById(R.id.obUserInfo_bursary);
EditText barclaysTxt = (EditText)findViewById(R.id.obUserInfo_barclays);
EditText natwestTxt = (EditText)findViewById(R.id.obUserInfo_natwest);
EditText hsbcTxt = (EditText)findViewById(R.id.obUserInfo_hsbc);
EditText walletTxt = (EditText)findViewById(R.id.obUserInfo_wallet);
String maintenance = maintenanceTxt.getText().toString();
String grant = grantTxt.getText().toString();
String bursary = bursaryTxt.getText().toString();
String barclays = barclaysTxt.getText().toString();
String natwest = natwestTxt.getText().toString();
String hsbc = hsbcTxt.getText().toString();
String wallet = walletTxt.getText().toString();
if(maintenance.isEmpty()|| grant.isEmpty() || bursary.isEmpty() || barclays.isEmpty() || natwest.isEmpty()
|| hsbc.isEmpty() || wallet.isEmpty()){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Empty textbox!");
builder.setMessage("Please enter 0.00 for any empty textboxes"); builder.setPositiveButton("OK", null);
@SuppressWarnings("unused")
AlertDialog dialog = builder.show();
}
else{
float convMaintenance = Float.valueOf(maintenance);
float convGrant = Float.valueOf(grant);
float convBursary = Float.valueOf(bursary);
float convBarclays = Float.valueOf(barclays);
float convNatwest = Float.valueOf(natwest);
float convHsbc = Float.valueOf(hsbc);
float convWallet = Float.valueOf(wallet);
Intent intent = new Intent(ObtainUserInformation.this, MainMenu.class);
intent.getFloatExtra("maintenance", convMaintenance);
intent.getFloatExtra("grant", convGrant);
intent.getFloatExtra("bursary", convBursary);
intent.getFloatExtra("barclays", convBarclays);
intent.getFloatExtra("natwest", convNatwest);
intent.getFloatExtra("hsbc", convHsbc);
intent.getFloatExtra("wallet", convWallet);
Toast.makeText(ObtainUserInformation.this, "Financial information successfully saved!", Toast.LENGTH_LONG).show();
startActivity(intent);
finish();
}
}
}
这个类的做法是,抓住用户的输入上一个EditText,把它们放到变量,并通过意图发送这些变量。
MainMenu.java
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
这是什么类包含一个方法“getUserInformation”,抓住意图,找到的EditText ID和设置的意图变量这个文本字段。
Fragment3
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;
}
这个类是我想显示在EditText上框的变量,但在努力寻找一个合适的方法来完成这个任务。
与片段,而不是普通的活动课,工作时它变得更加困难......
只是一个休息的什么,我希望发生的下降是:1。 )用户输入信息到1次活动 2 。)这些信息显示在页面的一部分中。Adaptor
任何帮助将不胜感激!
对我来说,我试图在传递一个浮动,这将仍然工作,而不是使用'args.putInt(“yourStringName”,yourString)以同样的方式;'? – user3197786
查看编辑答案。 – Triode
也可以在我的'Fragment3'类的'onCreateView'下使用'getActivity',还是我必须在使用'getActivity'功能的'Fragment3'中创建一个单独的方法? – user3197786