Java 将值从活动传递到片段时出现空指针异常
这是我的主要活动课。在这个类中,我试图将数据发送到我的片段“HomeFragment”,然后启动第二个活动“SwipeMainActivity” 这是编码的一部分:Java 将值从活动传递到片段时出现空指针异常,java,android,Java,Android,这是我的主要活动课。在这个类中,我试图将数据发送到我的片段“HomeFragment”,然后启动第二个活动“SwipeMainActivity” 这是编码的一部分: @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Title clickedTitle = mAdapter.getItem(position
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Title clickedTitle = mAdapter.getItem(position);
Log.d(TAG, "clickedItem : " + clickedTitle.getTitleName());
Intent intent = new Intent(this, SwipeMainActivity.class);
HomeFragment fragobj=new HomeFragment();
Bundle bundle = new Bundle();
bundle.putLong(HomeFragment.EXTRA_SELECTED_TITLE_ID, clickedTitle.getId());
fragobj.setArguments(bundle);
// intent.putExtra(SwipeMainActivity.EXTRA_SELECTED_TITLE_ID, clickedTitle.getId());
startActivity(intent);
然后,我的家庭片段:
我得到了这个错误:
02-24 00:34:02.266 15575-15575/com.kawlni.silence.bekang W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x40015560)
02-24 00:34:02.276 15575-15575/com.kawlni.silence.bekang E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NullPointerException
at com.kawlni.silence.bekang.Swipe.HomeFragment.onCreateView(HomeFragment.java:58)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613)
at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570)
at android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.java:141)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1106)
at android.support.v4.view.ViewPager.populate(ViewPager.java:952)
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1474)
at android.view.View.measure(View.java:8313)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
at android.view.View.measure(View.java:8313)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
at android.view.View.measure(View.java:8313)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
at android.view.View.measure(View.java:8313)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
at android.view.View.measure(View.java:8313)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
at android.view.View.measure(View.java:8313)
at android.view.ViewRoot.performTraversals(ViewRoot.java:839)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
您可以使用此工厂方法方法,使用提供的参数创建片段的新实例
public static final String EXTRA_SELECTED_TITLE_ID = "extra_key_selected_title_id";
private Long mTitleId;
public static HomeFragment newInstance(Long titleId) {
HomeFragment fragment = new HomeFragment();
Bundle args = new Bundle();
args.putString(EXTRA_SELECTED_TITLE_ID, titleId);
fragment.setArguments(args);
return fragment;
}
public HomeFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mTitleId = getArguments().getString(EXTRA_SELECTED_TITLE_ID);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d(LOG_TAG , "EXTRA_SELECTED_TITLE_ID = " + mTitleId);
return inflater.inflate(R.layout.fragment_home, container, false);
}
您可以使用如下方法:
HomeFragment fragobj = HomeFragment.newInstance(clickedTitle.getId());
Swipe.HomeFragment.onCreateView(HomeFragment.java:58)行是什么?i=bundle.getLong(this.EXTRA\u SELECTED\u TITLE\u ID,-1);这篇文章可能会引起你的兴趣。是的,我已经做了。无论如何,我再试一次。对不起。我不明白。我把那些代码放在我的家庭片段中,仍然没有任何效果。哦,我对安卓系统的研究太陌生了,它还在崩溃吗?我添加了log
log.d(log_标签,“额外选择的标题”ID=“+mTitleId”)代码>你看到anylogI了吗?我将此代码放在我的ActivityMain中(我希望数据从中传递):HomeFragment fragobj=HomeFragment.newInstance(clickedTitle.getId());在我的日志中,它显示D/TAGS:EXTRA\u SELECTED\u TITLE\u ID=0也在这一行,如果(getArguments()!=NULL),则该值始终为NULL{
public static final String EXTRA_SELECTED_TITLE_ID = "extra_key_selected_title_id";
private Long mTitleId;
public static HomeFragment newInstance(Long titleId) {
HomeFragment fragment = new HomeFragment();
Bundle args = new Bundle();
args.putString(EXTRA_SELECTED_TITLE_ID, titleId);
fragment.setArguments(args);
return fragment;
}
public HomeFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mTitleId = getArguments().getString(EXTRA_SELECTED_TITLE_ID);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d(LOG_TAG , "EXTRA_SELECTED_TITLE_ID = " + mTitleId);
return inflater.inflate(R.layout.fragment_home, container, false);
}
HomeFragment fragobj = HomeFragment.newInstance(clickedTitle.getId());