我的问题是将bundle的值发送到我的代码正在运行的另一个片段但是从SQLite
Database
获取不同的数据,例如我从其他帐户登录不同的数据后登录我的帐户如果有人可以告诉我如何将捆绑包中的值转移到另一个Fragment
类
这就是我在Login.class中的内容
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
DocProfile fragment = new Profile();
Bundle bundle = new Bundle();
bundle.putString("Name", c.getString(1));
bundle.putString("Age", c.getString(2));
bundle.putString("Gender", c.getString(3));
bundle.putString("Address", c.getString(4));
bundle.putString("Email", c.getString(5));
bundle.putString("Contact", c.getString(6));
fragment.setArguments(bundle);
ft.replace(R.id.content_frame, fragment);
ft.commit();
在我的Profile.class中从bundle获取值但获取不同的用户数据
Bundle args = getArguments();
if (args != null && args.containsKey("Name"))
name = args.getString("Name");
if (args != null && args.containsKey("Age"))
age = args.getString("Age");
if (args != null && args.containsKey("Gender"))
gender = args.getString("Gender");
if (args != null && args.containsKey("Address"))
address = args.getString("Address");
if (args != null && args.containsKey("Email"))
email = args.getString("Email");
if (args != null && args.containsKey("Contact"))
contact = args.getString("Contact");
答案 0 :(得分:2)
使用getArgument()
public class Test extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Bundle bundle = getArguments();
String str = bundle.getString("YOUR_KEY");
}
}
答案 1 :(得分:1)
嘿,当你试图从光标获取值时尝试这样
我认为问题是您在c.getString(int)
bundle.putString("Name", c.getString(c.getColumnIndex("your_column_name")));
和@Sanket Kachhela指南的其他人一样,你喜欢这个
建议
当您在循环中获取游标值时使用此
bundle.putString("Name", c.getString(c.getColumnIndex("your_column_name")));
像
int columnIndex = c.getColumnIndex("your_column_name");
bundle.putString("Name", c.getString(columnIndex));
因为
在循环查找列索引中每次都是耗时的任务这会影响应用程序性能,而列索引每次都不会更改所以找到它一次并在循环中每次使用
答案 2 :(得分:0)
Bundle bundle = this.getArguments();
String name = bundle.getString("Name");
或
String name = bundle.getString("Name","yourdefaultvaluehere");
当bundle没有名为" name"它将采用指定的默认值