Wie Code unten Aktivität des Codes in Fragment ändern? Dies ist Android Studio-Code. Meine Seite ist jetzt Fragment, ich möchte diesen Code verwenden und ich möchte den Fragmentcode modifizieren. Wenn wer es weiß, sag es mir, danke. Und ich stelle auch meinen aktuellen Code in Fragment und die Aktivität verbinden mit Fragment.Machen Sie die onBackPressed in Fragment
Fragment Code:
public class Tab1Fragment extends Fragment {
Context mContext;
public WebView webView;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.tab1_fragment, container, false);
mContext = view.getContext();
webView = (WebView) view.findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.setInitialScale(1);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);
webView.getSettings().setBuiltInZoomControls(true);
webView.loadUrl("https://www.facebook.com/");
webView.setWebViewClient(new WebViewClient());
return view;
}
}
Aktivitätscode:
public class Schedule extends AppCompatActivity {
private static final String TAG = "Schedule";
private SectionsPagerAdapter mSectionsPagerAdapter;
/**
* The {@link ViewPager} that will host the section contents.
*/
private ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.schedule);
Log.d(TAG, "onCreate: Starting.");
initialiseView();
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
TextView mTitle = (TextView) toolbar.findViewById(R.id.toolbar_title);
setSupportActionBar(toolbar);
toolbar.setTitle("SCHEDULE");
mTitle.setText(toolbar.getTitle());
getSupportActionBar().setDisplayShowTitleEnabled(false);
if(getSupportActionBar() !=null){
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
// Create the adapter that will return a fragment for each of the three
// primary sections of the activity.
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.container);
mViewPager.setAdapter(mSectionsPagerAdapter);
setupViewPager(mViewPager);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.setupWithViewPager(mViewPager);
}
private void setupViewPager(ViewPager viewPager){
SectionPageAdapter adapter = new SectionPageAdapter(getSupportFragmentManager());
adapter.addFragment(new Tab1Fragment(), "4 Sept 2018");
adapter.addFragment(new Tab2Fragment(), "5 Sept 2018");
adapter.addFragment(new Tab3Fragment(), "6 Sept 2018");
viewPager.setAdapter(adapter);
}
private void initialiseView() {
mTab1Fragment = new Tab1Fragment();
FragmentManager mFragmentManager = getSupportFragmentManager();
FragmentTransaction mFragmentTransaction = mFragmentManager.beginTransaction();
mFragmentTransaction.replace(R.id.container, mTab1Fragment, "TAB 1 FRAGMENT");
mFragmentTransaction.commit();
}
@Override
public void onBackPressed() {
//Toast.makeText(this, "Calling back pressed", Toast.LENGTH_SHORT).show();
if (mTab1Fragment != null) {
if (mTab1Fragment.webView.canGoBack()) {
mTab1Fragment.webView.goBack();
}
} else {
super.onBackPressed();
}
}
}
den Code legen, wenn Sie das Fragment aus Ihrer Aktivität – diegoveloper
erstellen wha der Fehler, die Sie erhalten?, Ich glaube, Sie nur die Ansicht in 'onCreateView' aufblasen sollte, sollten Sie Ihre webView Setup in' onViewCreated' und Last die Anfrage in 'onStart' – Lamar
Ich fand Lösung bereits, in diesem Link: https://stackoverflow.com/questions/10631425/how-to-add-go-back-function-in-webview-inside-fragment –