Những gì tôi cần phải đạt được là trong mỗi Tab Tôi muốn hiển thị các trang web khác nhau, nhưSet WebView loadUrl lập trình đó là trong lớp mảnh
Tab 1: http://www.stackoverflow.com
Tab 2: http://www.google..com
Tab 3. http://www.developers.android.com
Vấn đề của tôi là tôi không thể truy cập các đối tượng WebView để một loadUrl()
Để làm rõ câu hỏi của tôi ở đây là mã của tôi:
FragmentTabsPagerActivity.java
public class FragmentTabsPagerActivity extends FragmentActivity implements TabHost.OnTabChangeListener, ViewPager.OnPageChangeListener{
private TabHost mTabHost;
private ViewPager mViewPager;
private HashMap<String, TabInfo> mapTabInfo = new HashMap<String, FragmentTabsPagerActivity.TabInfo>();
private PagerAdapter mPagerAdapter;
...
private void initialiseTabHost(Bundle args) {
mTabHost = (TabHost)findViewById(android.R.id.tabhost);
mTabHost.setup();
TabInfo tabInfo = null;
Bundle bundle1 = new Bundle();
Bundle bundle2 = new Bundle();
Bundle bundle3 = new Bundle();
bundle1.putInt("id", 1);
bundle2.putInt("id", 2);
bundle3.putInt("id", 3);
FragmentTabsPagerActivity.addTab(this, this.mTabHost, this.mTabHost.newTabSpec("Tab1").setIndicator("Tab 1"), (tabInfo = new TabInfo("Tab1", TabsFragment.class, bundle1)));
FragmentTabsPagerActivity.addTab(this, this.mTabHost, this.mTabHost.newTabSpec("Tab2").setIndicator("Tab 2"), (tabInfo = new TabInfo("Tab2", TabsFragment.class, bundle2)));
FragmentTabsPagerActivity.addTab(this, this.mTabHost, this.mTabHost.newTabSpec("Tab3").setIndicator("Tab 3"), (tabInfo = new TabInfo("Tab3", TabsFragment.class, bundle3)));
this.mapTabInfo.put(tabInfo.tag, tabInfo);
mTabHost.setOnTabChangedListener(this);
}
}
TabsFragment.java
public class TabsFragment extends Fragment{
LinearLayout layout;
WebView mWebView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
layout = (LinearLayout)inflater.inflate(R.layout.fragments_layout, container, false);
mWebView = (WebView) layout.findViewById(R.id.webView1);
WebSettings setting =mWebView.getSettings();
mWebView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return true;
}
});
if(container == null){
return null;
}
return layout;
}
public void setWebUrl(String url){
mWebView.loadUrl(url);
}
}
PagerAdapter.java
public class PagerAdapter extends FragmentPagerAdapter{
private List<Fragment> fragments;
public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
}
EDIT:
fragments_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<WebView
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
bạn đã sử dụng LinearLayout làm bố cục gốc trong fragments_layout xml –
@NixitPatel, Xin chào! Tôi đã thêm mã kiểm tra fragments_layout cho Chỉnh sửa của tôi. – jayellos