我正在尝试将数据从活动发送到片段 这是活动代码:
Bundle args=new Bundle();
args.putString("username", username);
ViewEmpAttend fragobj=new ViewEmpAttend();
fragobj.setArguments(args);
这里是片段代码:
username=this.getArguments().getString("username");
但是这段代码在(Fragment Class)的onCreateView方法中给出了一个错误“null对象引用”。
请帮助:)
答案 0 :(得分:0)
尝试从onCreate of Fragment
中检索参数@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String username = this.getArguments().getString("username");
}
答案 1 :(得分:0)
在活动中定义一种方法。
public class MainActivity extends AppCompatActivity {
String name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//your code
}
//define this method
public String getName(){
this.name = username;
}}
在片段中使用以下代码。
String userName = ((activityName) getActivity()).getName();//you will get name here.
答案 2 :(得分:0)
对于像这样简单的东西,我将在片段中创建一个构造函数方法来传入一个字符串。
例如
public class MyFragment extends Fragment{
private String myString;
public MyFragment (){
// Recommended Empty Constructor
}
public MyFragment (String yourString){
this.myString = yourString;
}
}
在Activity类上,您可以将字符串直接传递给片段构造函数
public MyClass extends Activity{
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
openFragment();
}
public void openFragment(){
MyFragment fragment = new Fragment("yourString");
// Here begin the fragment transaction
}
}