活动A
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ActivityA);
Bundle b = new Bundle();
b.putString("mobile", "123456789");
FragmentA fragmentA = new FragmentA ();
fragmentA .setArguments(b);}
FragmentA
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_fragmentA, container, false);
String txtMobile = getArguments().getString("mobile");
Log.i("mobile2",txtMobile);
mobile.setText(txtMobile);}
我已尝试过以上解决方案,但显示错误 尝试在空对象引用上调用虚方法'java.lang.String android.os.Bundle.getString(java.lang.String)'
答案 0 :(得分:0)
像这样创建你的片段
public static MyFragment newInstance(String string) {
Bundle args = new Bundle();
args.putString("string",string);
MyFragment fragment = new MyFragment();
fragment.setArguments(args);
return fragment;
}
然后在Fragment onCreate
中使用getArguments()
来拉取该字符串。别忘了检查getArguments()
是否为空。
答案 1 :(得分:0)
尝试使用默认值构造函数获取片段的onCreate方法中的参数:
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String txtMobile = getArguments().getString("mobile", "");
}
并确保在片段中设置参数后提交片段事务。 :)
答案 2 :(得分:0)
首先检查您的参数是否为空。 例如 @覆盖 public View onCreateView(LayoutInflater inflater,ViewGroup容器,Bundle savedInstanceState){
View v = inflater.inflate(R.layout.fragment_fragmentA, container, false);
如果(getArguments()!= NULL){
String txtMobile = getArguments().getString("mobile");
Log.i("mobile2",txtMobile);
mobile.setText(txtMobile);
} }
答案 3 :(得分:0)
试试这个:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null){
String txtMobile = savedInstanceState.getString("mobile");
}
}
答案 4 :(得分:0)
可能是关于你在课堂上添加片段的方式:
faceCount[0].Count
你能提供更多关于如何添加它的数据吗?
答案 5 :(得分:0)
您可以使用inteface将数据从活动传递到片段
在您的活动中
public interface FragmentRefreshListener {
void onRefresh(String mydata);
}
public FragmentRefreshListener fragmentRefreshListener;
public void setFragmentRefreshListener(FragmentRefreshListener fragmentRefreshListener) {
this.fragmentRefreshListener = fragmentRefreshListener;
}
public FragmentRefreshListener getFragmentRefreshListener() {
return fragmentRefreshListener;
}
然后在你的片段里面添加以下代码
((MainActivity) getActivity()).setFragmentRefreshListener(new MainActivity.FragmentRefreshListener() {
@Override
public void onRefresh(String mydata) {
// write your logic here
}
});
在您的活动中使用以下内容将数据从活动传递到片段
getFragmentRefreshListener().onRefresh("dummy text");