Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 片段Webview中的Goback函数_Android_Android Fragments_Webview - Fatal编程技术网

Android 片段Webview中的Goback函数

Android 片段Webview中的Goback函数,android,android-fragments,webview,Android,Android Fragments,Webview,如何在webview片段中添加goBack函数 当我点击后退按钮时,它从片段中退出,我不希望它完成,而是加载旧网站 我试过了,但是换了一些词,它不起作用 请帮忙 代码在这里 片段活性 package info.androidhive.materialtabs.activity; import android.os.Bundle; import android.support.design.widget.TabLayout; import android.support.v4.app.F

如何在webview片段中添加goBack函数

当我点击后退按钮时,它从片段中退出,我不希望它完成,而是加载旧网站

我试过了,但是换了一些词,它不起作用

请帮忙

代码在这里

片段活性

    package info.androidhive.materialtabs.activity;

import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;

import android.webkit.WebView;
import android.webkit.WebViewFragment;

import java.util.ArrayList;
import java.util.List;

import info.androidhive.materialtabs.R;
import info.androidhive.materialtabs.fragments.OneFragment;
import info.androidhive.materialtabs.fragments.ThreeFragment;
import info.androidhive.materialtabs.fragments.TwoFragment;

public class SimpleTabsActivity extends AppCompatActivity {

    private Toolbar toolbar;
    private TabLayout tabLayout;
    private ViewPager viewPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_simple_tabs);

        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        viewPager = (ViewPager) findViewById(R.id.viewpager);
        setupViewPager(viewPager);

        tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);


    }


    private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
        adapter.addFragment(new OneFragment(), "ONE");
        adapter.addFragment(new TwoFragment(), "TWO");
        adapter.addFragment(new ThreeFragment(), "THREE");
        viewPager.setAdapter(adapter);


    }

    class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();

        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }

        @Override
        public Fragment getItem(int position) {
            return mFragmentList.get(position);
        }

        @Override
        public int getCount() {
            return mFragmentList.size();
        }

        public void addFragment(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitleList.get(position);
        }





    }
}
package info.androidhive.materialtabs.activity;
导入android.os.Bundle;
导入android.support.design.widget.TabLayout;
导入android.support.v4.app.Fragment;
导入android.support.v4.app.FragmentManager;
导入android.support.v4.app.FragmentPagerAdapter;
导入android.support.v4.view.ViewPager;
导入android.support.v7.app.AppActivity;
导入android.support.v7.widget.Toolbar;
导入android.webkit.WebView;
导入android.webkit.WebViewFragment;
导入java.util.ArrayList;
导入java.util.List;
进口信息androidhive.materialtabs.R;
导入info.androidhive.materialtabs.fragments.OneFragment;
导入info.androidhive.materialtabs.fragments.ThreeFragment;
导入info.androidhive.materialtabs.fragments.TwoFragment;
公共类SimpleTableActivity扩展了AppCompatActivity{
专用工具栏;
私人摊位摊位;
私人视页机视页机;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u simple\u选项卡);
toolbar=(toolbar)findviewbyd(R.id.toolbar);
设置支持操作栏(工具栏);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
viewPager=(viewPager)findViewById(R.id.viewPager);
设置viewPager(viewPager);
tabLayout=(tabLayout)findViewById(R.id.tabs);
tabLayout.setupWithViewPager(viewPager);
}
专用无效设置ViewPager(ViewPager ViewPager){
ViewPagerAdapter适配器=新的ViewPagerAdapter(getSupportFragmentManager());
addFragment(新的OneFragment(),“一”);
addFragment(新的TwoFragment(),“TWO”);
addFragment(新的ThreeFragment(),“THREE”);
viewPager.setAdapter(适配器);
}
类ViewPagerAdapter扩展了FragmentPagerAdapter{
私有最终列表MFFragmentList=new ArrayList();
私有最终列表MFFragmentTitleList=new ArrayList();
公共视图页面编辑器(碎片管理器){
高级经理;
}
@凌驾
公共片段getItem(int位置){
返回MFFragmentList.get(位置);
}
@凌驾
public int getCount(){
返回MFFragmentList.size();
}
public void addFragment(片段片段,字符串标题){
添加(片段);
MFFragmentTitleList.add(标题);
}
@凌驾
公共字符序列getPageTitle(int位置){
返回MFFragmentTitleList.get(位置);
}
}
}
碎片布局


实际上,您不能直接在片段内部执行。可在
碎片活动
中覆盖
onBackPressed
。您可以做的是:

  • 在“活动”内重写“反压”
  • 调用
    onBackPressed
    时,检查当前片段的实例是否是显示
    webview
    的实例
  • 如果是,请询问
    片段
    是否可以返回
    webview
  • 如果不是,请拨打
    super
    或任何您需要的电话

  • 有关更多详细信息,请访问此

    覆盖活动中的onBackPressed方法。 从这里尝试找到您当前的片段,并从该片段调用一个方法来处理您的web视图操作

    示例(此代码属于您的活动):


    可能重复的R.id.container是包含片段的xml元素,我不知道您如何称呼它!你们能发布更多的代码(活动和它的xml描述)吗?我把它们添加到了主要问题中。。您能检查一下吗?尝试将R.id.container更改为R.id.viewpager
    @Override
    public void onBackPressed() {
        if (getFragmentManager().findFragmentById(R.id.container) instanceof YourFragment) {
            YourFragment currentFragment = (YourFragment) getFragmentManager().findFragmentById(R.id.container);
            if (currentFragment != null) {
                currentFragment.handleWebViewNavigation();
            }
        }
    }