带有意图的片段中的 onclicklistener
Posted
技术标签:
【中文标题】带有意图的片段中的 onclicklistener【英文标题】:onclicklistener in fragment with intent 【发布时间】:2016-02-29 02:39:54 【问题描述】:我有一个带有 Intro 类的 android 应用。 这个 Intro 类有三个片段。
在片段 3 (IntroPage3) 中,我想设置一个 onclicklistener,其意图是从 IntroPage3 到 Overview.class,如下所示:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
FragementView = inflater.inflate(R.layout.intro_page1, container, false);
Button FinishIntroButton = (Button) FragementView.findViewById(R.id.FinishIntroButton);
FinishIntroButton.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
intent = new Intent(IntroPage3.this, Overview.class);
startActivityForResult(intent, 0);
);
return FragementView;
问题:这条线是:
intent = new Intent(IntroPage3.this, Intro.class);
错误信息:
【问题讨论】:
【参考方案1】:使用intent = new Intent(getActivity(), Overview.class);
【讨论】:
【参考方案2】:public class Fragment3 extends Fragment
@Nullable
@Override
public View onCreateView(@NonNull final LayoutInflater inflater, @Nullable final ViewGroup container, @Nullable Bundle savedInstanceState)
View view;
view = inflater.inflate(R.layout.page_4, container, false);
Button button=view.findViewById(R.id.exit);
button.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
Intent intent;
intent=new Intent(getActivity(),FragmentLogin.class);
startActivity(intent);
);
return view;
【讨论】:
【参考方案3】:您必须使用getActivity()
而不是IntroPage3.this
为什么
getActivity() 在 Fragment 中返回 Fragment 当前关联的 Activity。
Button FinishIntroButton = (Button) FragementView.findViewById(R.id.FinishIntroButton);
FinishIntroButton.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
intent = new Intent(getActivity(), Overview.class);
startActivityForResult(intent, 0);
);
【讨论】:
以上是关于带有意图的片段中的 onclicklistener的主要内容,如果未能解决你的问题,请参考以下文章