【问题标题】:Button does not show next to a webview按钮不显示在 web 视图旁边
【发布时间】:2015-01-14 16:03:21
【问题描述】:


我的应用程序包含一个 tab-widged 活动。在一个选项卡中,我显示了一个 web 视图,我想在该视图下显示几个按钮。
我发布的代码现在有效!
感谢您的帮助

package com.whateveryoulike.whateveryoulike;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

public class Activity_tab_reader extends Activity {

private WebView webView;

// entnimmt die url aus dem public static string und legt sie in der localen string    mynewurl ab.
String MyNewUrl =  Activity_Haupt.MyDocumentURL;
//String data = "<html><head></head><body>this should be my long long text...</body></html>";


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

    MyNewUrl =  Activity_Haupt.MyDocumentURL;
    webView = (WebView) findViewById(R.id.webview);
    webView.loadUrl(MyNewUrl);

    //Settings webview
    webView.getSettings().setJavaScriptEnabled(true); // enable javascript
    webView.getSettings().setSaveFormData(true);

    final Activity activity = this;

    webView.setWebViewClient(new WebViewClient() {
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
            Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
        }
    });     
}

    @Override
    protected void onResume() {
        super.onResume();
        if(!MyNewUrl.equals(Activity_Haupt.MyDocumentURL)){

            MyNewUrl =  Activity_Haupt.MyDocumentURL;   
            webView.loadUrl(MyNewUrl);

        }
    }
}

这是 tabxml 文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/fh_blau"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/linear"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="3" >

        <Button
            android:id="@+id/btnRefresh"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button" />

        <Button
            android:id="@+id/btnNext"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button" />

        <Button
            android:id="@+id/btnCloseSearch"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button" />
    </LinearLayout>

    <WebView
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/linear" />

</RelativeLayout>

感谢您的帮助

【问题讨论】:

  • “我几乎尝试了所有方法,但没有成功”我不确定你是否理解 "literal" 这个词,但你至少应该向我们展示你的最新尝试
  • 你尝试过shotgun调试吗?
  • "按钮不存在!"你说得对。您认为应该在那里的按钮在哪里?您在setContentView() 中设置了网络视图,所以我不确定您还希望显示什么...
  • @codeMagic 可能是这样。我来自德国,所以我的英语不是无懈可击的。添加了java代码。从一开始就打算这样做,但 stackoverflow 不断提醒我代码在代码区域之外....
  • 好的,我已经链接到它,所以你可以理解它的含义。但这意味着绝对没有你没有尝试过的事情是不可能的。无论如何,我仍然不确定您希望看到的按钮在哪里。

标签: android android-layout button webview tabs


【解决方案1】:

根据您编辑的问题,下面的代码应该可以工作,当您使用RelativeLayout时,您必须让小部件知道它们需要在哪里,使用layout_above/layout_below和RelativeLayout的属性 编辑:我添加了一个setContentView(R.id.tab) 用您的xml 文件名更改“选项卡”。 并在复制粘贴之前尝试学习代码

您的活动,

 public class Activity_tab_reader extends Activity {

    private WebView webView;

    // entnimmt die url aus dem public static string und legt sie in der localen string mynewurl ab.
    String MyNewUrl =  Activity_Haupt.MyDocumentURL;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    setContentView(R.layout.tab);
        webView  = (WebView) findViewById(R.id.webview);
//    do the same as above here to initialize buttons and handle their clicks.
    MyNewUrl =  Activity_Haupt.MyDocumentURL;   
        webView.loadUrl(MyNewUrl);
        //webView.loadDataWithBaseURL("file:///android_asset/", data, "text/html", "utf-8", null);
        webView.getSettings().setJavaScriptEnabled(true); // enable javascript
        webView.getSettings().setSaveFormData(true);
        //webView.getSettings().setBuiltInZoomControls(true);
        //webView.getSettings().setSupportMultipleWindows(true);
        final Activity activity = this;

        webView.setWebViewClient(new WebViewClient() {
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
            }
        });
    //  webView .loadUrl("http://www.google.com");

    }

    @Override
    protected void onResume() {
        super.onResume();
        if(!MyNewUrl.equals(Activity_Haupt.MyDocumentURL)){

            MyNewUrl =  Activity_Haupt.MyDocumentURL;   
            webView.loadUrl(MyNewUrl);
        }
    }

和标签xml文件,

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/fh_blau"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/linear"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:weightSum="3" >

        <Button
            android:id="@+id/btnRefresh"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button" />

        <Button
            android:id="@+id/btnNext"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button" />

        <Button
            android:id="@+id/btnCloseSearch"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Button" />
    </LinearLayout>

    <WebView
        android:id="@+id/webview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_below="@+id/linear" />

</RelativeLayout>

【讨论】:

  • 但这不起作用。我相当确定问题出在 xmlfile 之外。
  • @NMev,您的活动编码有点错误,您应该使用 setContentView() 来处理屏幕中的多个小部件并通知活动您有一个特定的 xml 要在此活动中显示,尝试更改我的 xml 和我编辑的类。
  • 嘿,我没有发现您在 java 文件中所做的更改...现在我看到了我的按钮,但 webview 显示为空白,但这比我一整天的成就还要多。谢谢
  • 现在一切正常,我将在一小时内将我发布的代码更改为正确的代码......非常感谢
  • @NMev 很高兴为您提供帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-22
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 2020-02-21
  • 1970-01-01
相关资源
最近更新 更多