如何从带有按钮的片段中打开网页视图中的网页?
Posted
技术标签:
【中文标题】如何从带有按钮的片段中打开网页视图中的网页?【英文标题】:how can i open a webpage in a webview from a fragment with buttons? 【发布时间】:2014-12-20 19:53:09 【问题描述】:我在这里阅读了https://***.com/users/1116216/michele-la-ferla (michele la ferla) 的答案:how can i open a webpage in a webview from a fragment? 但是当您在“layout.xml”文件中有更多用于更多 URL 的按钮时, 如何修改你的“片段类”文件? 这是我的第一个按钮的代码,错误在哪里?:
private Dialog WebDialog1;
private WebView URL1;
private Button button0;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
final View rootView = inflater.inflate(R.layout.fragmentsite, container, false);
button0 = (Button) rootView.findViewById(R.id.button0);
button0.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
WebDialog1 = new Dialog(getActivity());
WebDialog1.requestWindowFeature(Window.FEATURE_NO_TITLE);
WebDialog1.setContentView(R.layout.sitef);
WebDialog1.setCancelable(true);
URL1 = (WebView) rootView.findViewById(R.id.webview);
URL1.setWebViewClient(new WebViewClient());
URL1.setScrollbarFadingEnabled(true);
URL1.setHorizontalScrollBarEnabled(false);
URL1.getSettings().setjavascriptEnabled(true);
URL1.loadUrl("http://www.dhfhfhfh.com/Home.php");
WebDialog1.show();
);return rootView;'
【问题讨论】:
我不太明白你的问题。您是否有 2 个按钮,并且每次单击按钮时都想打开不同的网页? 【参考方案1】:如果我很好地理解了您的问题,那么您的场景由以下内容组成:
-
具有多个按钮的布局文件。
每个按钮在 web 视图中加载不同的 url。
考虑到这些,我会在每个按钮上使用一个 ActionListener 来实现它,并发送参数以在 ActionEvent 的 webview 中加载 url。
片段事件:
public class EventFragment extends Fragment
private Dialog WebDialog1, WebDialog2;
private WebView URL1, URL2;
private Button btnURL1, btnURL2;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
View rootView = inflater.inflate(R.layout.main_layout, container, false);
btnURL1 = (Button) rootView.findViewById(R.id.btnURL1);
btnURL1.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
WebDialog1 = new Dialog(getActivity());
WebDialog1.requestWindowFeature(Window.FEATURE_NO_TITLE);
WebDialog1.setContentView(R.layout.web_layout);
WebDialog1.setCancelable(true);
URL1 = (WebView) WebDialog.findViewById(R.id.url1);
URL1.setWebViewClient(new WebViewClient());
URL1.setScrollbarFadingEnabled(true);
URL1.setHorizontalScrollBarEnabled(false);
URL1.getSettings().setJavaScriptEnabled(true);
URL1.getSettings().setUserAgentString("First Webview");
URL1.loadUrl("//the first url goes here");
WebDialog1.show();
btnURL2 = (Button) rootView.findViewById(R.id.btnURL2);
btnURL2.setOnClickListener(new OnClickListener()
@Override
public void onClick(View v)
WebDialog2 = new Dialog(getActivity());
WebDialog2.requestWindowFeature(Window.FEATURE_NO_TITLE);
WebDialog2.setContentView(R.layout.web_layout);
WebDialog2.setCancelable(true);
URL2 = (WebView) WebDialog.findViewById(R.id.url2);
URL2.setWebViewClient(new WebViewClient());
URL2.setScrollbarFadingEnabled(true);
URL2.setHorizontalScrollBarEnabled(false);
URL2.getSettings().setJavaScriptEnabled(true);
URL2.getSettings().setUserAgentString("Second Webview");
URL2.loadUrl("//the second url goes here");
WebDialog2.show();
);
return rootView;
main_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_ >
<Button
android:id="@+id/btnURL1"
android:layout_
android:layout_
android:layout_centerHorizontal="true"
<Button
android:id="@+id/btnURL2"
android:layout_
android:layout_
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
</RelativeLayout>
web_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/rl_relativeLayout"
android:layout_
android:layout_
android:layout_gravity="center_horizontal"
android:layout_margin="10dip"
android:layout_weight="0.82" >
<TextView
android:id="@+id/Title"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:gravity="center"
android:text="Buy your Tickets:" />
<WebView
android:id="@+id/ticketline"
android:layout_
android:layout_
android:layout_below="@id/Title"
android:layout_marginTop="5dip" />
</RelativeLayout>
</LinearLayout>
在此期间,我会查看buttons 和ActionListeners 的官方 Android 文档。
【讨论】:
如果这对您有帮助,请您接受答案吗? 您能否取消与第 3 点相关的代码“在这种情况下,Webview 是在对话框中加载的,使用户能够在 backpress 上返回您的应用程序。”?我只需要每个按钮在片段的 web 视图中加载不同的 url。但是为什么不使用“如果”和“如果也”呢?感谢您提前帮助我.... 我编辑了代码以获得您想要的。您只需复制和粘贴即可。我没有使用 if 语句,因为每个按钮上都有一个动作监听器,代码更简洁。 如果对您有帮助,请您接受这个问题吗?否则,我将非常乐意为您提供进一步的帮助。 我编辑了问题中的代码,错误在哪里?为什么你使用“WebConn”,我可以使用“new WebViewClient”吗?以上是关于如何从带有按钮的片段中打开网页视图中的网页?的主要内容,如果未能解决你的问题,请参考以下文章