【问题标题】:While clicking a button how can i redirect to webview page in android fragment?单击按钮时,如何重定向到 android 片段中的 webview 页面?
【发布时间】:2017-07-10 22:19:57
【问题描述】:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_home, container, false);
    btnnext3=(Button) view.findViewById(R.id.button1);
    btnnext3.setOnClickListener(new OnClickListener() {

        private Context CurrentObj=getActivity();

        @Override
        public void onClick(View view) {

            Intent redirect=new Intent(CurrentObj,FurnitureFragment.class);
            CurrentObj.startActivity(redirect);
        }
    });
   return view;
}

这里不是重定向。在单击按钮应用程序停止时。我正在使用 android studio。它是一个片段类

Logcat:

E/AndroidRuntime(1952): android.content.ActivityNotFoundException: 找不到明确的活动类 {info.androidhive.navigationdrawer/info.androidhive.navigati‌​ondrawer.fragment.Fu‌​rnitureFragment}; 您是否在 AndroidManifest.xml 中声明了此活动? 07-11 03:59:47.370:E/AndroidRuntime(1952):在 android.app.Instrumentation.checkStartActivityResult(Instrum‌​entation.java:1628)

【问题讨论】:

  • 发布带有错误标志的 logcat。
  • 07-11 03:59:47.370: E/AndroidRuntime(1952): android.content.ActivityNotFoundException: 找不到明确的活动类 {info.androidhive.navigationdrawer/info.androidhive.navigationdrawer.fragment .家具片段};您是否在 AndroidManifest.xml 中声明了此活动? 07-11 03:59:47.370: E/AndroidRuntime(1952): 在 android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1628)
  • 它会导致错误,因为您正在从另一个片段调用一个片段。片段不能像活动一样被显式调用。它们必须附加到活动中。
  • 尝试 getContext() 而不是 getActivity() 并使其成为全局和非私有
  • 我也试过这个。尝试 getContext() 而不是 getActivity()。仍然无法正常工作

标签: android android-fragments webview fragment android-fragmentactivity


【解决方案1】:

您正在通过 Intent 调用片段。而这不可能发生。因为 Fragments 必须附加或分离到 Activity。请看一下这个以获得更好的理解: Fragments

替换您的代码:

        Intent redirect=new Intent(CurrentObj,FurnitureFragment.class);
        CurrentObj.startActivity(redirect);

有了这个:

FurnitureFragment fragment2 = new FurnitureFragment();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction =        
fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.container, fragment2);//Replace this with your layout ID.
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();

看看这个:

https://stackoverflow.com/a/14628036/5192105

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 2021-09-07
    相关资源
    最近更新 更多