看到this后问题,引起了我的思考。我可以通过在 onCreateView
中调用它来获取 Fragment 中的 Intent:
String Item = getActivity().getIntent().getExtras().getString("name");
这个问题是 getActivity
可能会返回 null
,以对抗我可以调用:
if(getActivity() != null)
String Item = getActivity().getIntent().getExtras().getString("name");
}
这会很好地工作,但是..
我正在考虑在我的 Activity 中创建一个静态方法,然后通过调用该方法来访问我的 fragment 中的 Intent,如下所示(在我的 Activity 中):
public class DemoActivity extends Activity{
static String name;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_demo);
//Getting the Intent from the previous Activity
name = getIntent().getStringExtra("name");
}
public static String Name(){
//returning the Intent
return name;
}
}
然后在我的 fragment 中我可以这样调用它:
String name = DemoActivity.Name();
我的问题:
我可以这样做吗?它会引起任何问题吗?为什么?
目前
工作正常。
最佳答案
尝试这样:
Activity 类别:
Bundle bundle = new Bundle();
bundle.putString("your_key", "your_value");
your_fragment.setArguments(bundle);
fragment 类:
String your_variable = getArguments().getString("your_key");
关于android - 在 fragment 中获取 Intent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51513679/