android - 带有按钮的Android应用程序:每个按钮是否需要一个webView?
问题描述
我正在尝试开发一个简单的应用程序,有 6 个按钮和一个背景。我需要这些按钮来打开应用程序内的 webView,每个按钮都有不同的 URL。我发现的所有例子都没有解决我的问题。可以只用一个 webView 类来做到这一点,还是每个按钮都需要一个 webView 类?
如果您能提供任何示例,我将不胜感激。
在你推荐后按下按钮时,我得到了这个飞溅,Emad。
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.roomssalomons2019">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.VIBRATE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:ignore="GoogleAppIndexingWarning">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".WebViewActivity"
android:theme="@android:style/Theme.NoTitleBar" />
</application>
</manifest>
Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fondoapp"
android:id="@+id/activity_main_webview"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/fondoapp"
android:orientation="vertical">
<Button
android:id="@+id/button"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/but_obra" />
<Button
android:id="@+id/button6"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/but_prnr" />
<Button
android:id="@+id/button5"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/but_doc" />
<Button
android:id="@+id/button2"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:text="@string/but_mto" />
<Button
android:id="@+id/button4"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/but_rcpcn" />
<Button
android:id="@+id/button3"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/but_limpieza" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
package com.example.roomssalomons2019;
import androidx.appcompat.app.AppCompatActivity;
import android.Manifest;
import android.os.Bundle;
import android.content.Intent;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button button;
private Button button2;
private Button button3;
private Button button4;
private Button button5;
private Button button6;
@Override
protected void onCreate(Bundle savedInstanceState) {
final Context context = this;
super.onCreate(savedInstanceState);
//String[] perm = {Manifest.permission.INTERNET};
//requestPermissions(perm,0);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(MainActivity.this, WebViewActivity.class);
intent.putExtra("URl","https://roomssalomons.wixsite.com/roomssalomons/obra");
startActivity(intent);
}
});
}
}
WebViewActivity.java
package com.example.roomssalomons2019;
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class WebViewActivity extends Activity {
private WebView webView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
webView = (WebView) findViewById(R.id.webView1);
webView.getSettings().setJavaScriptEnabled(true);
//webView.loadUrl("https://roomssalomons.wixsite.com/roomssalomons/obra");
}
}
webview.xml
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
我不明白这个问题... ¿ 有人可以帮忙吗?
非常感谢。
爱德华多·A。
解决方案
您可以使用 webview 创建一个活动,单击任何按钮时只需打开此活动并传递 url int
在您的按钮操作上
Intent intent=new Intent(MainActivity.this,WebVIEWActivity.class);
intent.putExtra("URl","YOUR_URL");
startActivity(intent);
在你的 WebviewActivity
String url=getIntent().getExtras().getString("URl");
推荐阅读
- python - 如何使用 Jenkins 中分离的变量、关键字和测试文件构建 Robot Framework 项目
- r - 使用 rollapply 计算每周百分比变化
- identityserver4 - 解密 Identity Server 中的共享密钥
- javascript - 为什么控制台显示 js 代码,即使我没有在单独的文件中?
- java - 使用 Spring Boot 和 Thymeleaf 上传多个文件
- css - React native:试图在滚动时隐藏搜索栏
- javascript - 如果目标平台是 Raspberry Pi OS (arm),则禁用代码行 (JavaScript/QML)
- angular - 带有 AAD 的 Azure Function Cors
- python - 在上下文之外使用烧瓶变量
- android - 错误“请在编译 kodi 时将 gnulib freadahead.c 移植到您的平台