gpt4 book ai didi

java - 类似旅行顾问的对话框,并在 Android 中显示自定义背景或启动画面

转载 作者:行者123 更新时间:2023-11-30 03:49:32 25 4
gpt4 key购买 nike

我是 android 开发的初学者。下面我给出了我的主要 activity.java 代码。我的要求,如果互联网连接或 wifi 不能在移动设备上工作,那么执行以下操作

  1. 如果互联网连接无法正常工作,则在应用程序启动时显示我的初始屏幕背景,并提供对话框或警报,如 trip advisor Check this image and screenshot 的屏幕截图.如果按下取消按钮,则对话框消失,仅显示启动画面,如果再次按下尝试,则尝试连接到互联网。

在我的代码中,我使用代码购买对话框,我不想要购买功能,这不是我的要求。我想要完全一样的旅行顾问。对我来说很容易,如果有人编辑我的代码并显示在哪里进行更改,非常感谢提前

package com.example.edarabia;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;


@SuppressLint("SetJavaScriptEnabled")

public class MainActivity extends Activity{
WebView mywebview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mywebview = (WebView) findViewById(R.id.webview);
if(isNetworkConnected() == true){
mywebview.getSettings().setJavaScriptEnabled(true);
mywebview.setWebViewClient(new myWebClient());
mywebview.loadUrl("http://www.grafdom.com/operations/projects/ma/edarabiaapp/");
mywebview.getSettings().setBuiltInZoomControls(true);
mywebview.getSettings().setLoadWithOverviewMode(false);
mywebview.getSettings().setUseWideViewPort(false);
}else{
showBuyDialog();
}
}






// @Override
// public boolean onKeyDown(int keyCode, KeyEvent event) {
// Check if the key event was the Back button and if there's history
// if ((keyCode == KeyEvent.KEYCODE_BACK) && mywebview.canGoBack()) {
// mywebview.goBack();
// return true;
// }

// return super.onKeyDown(keyCode, event);

// }

// To handle "Back" key press event for WebView to go back to previous screen.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK) && mywebview.canGoBack()) {
mywebview.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}

@Override
public void onBackPressed() {
finish();
}


public class myWebClient extends WebViewClient
{
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}

//// This method will retun boolean value if net conect then value will be true otherwise false
private boolean isNetworkConnected() {
ConnectivityManager connectivity = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
return false;
}

public void showBuyDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("just for testing");

builder.setMessage("Check you net conectivity....");
builder.setCancelable(false);
builder.setPositiveButton("Buy", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Intent browserIntent = new Intent(
Intent.ACTION_VIEW,
Uri.parse("https://www.google.com"));
startActivity(browserIntent);
}
});
builder.show();
}




}

最佳答案

这可能会有帮助: Detect whether there is an Internet connection available on Android

或尝试深入研究 BroadcastReceivers。示例代码:

public class InternetConnectionStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
_v("Network connectivity change");
if (intent.getExtras() != null) {
NetworkInfo ni = (NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO);
if (ni != null && ni.getState() == NetworkInfo.State.CONNECTED) {
_v("Network " + ni.getTypeName() + " connected");
onNetworkConnection(context, true);
}
}
if (intent.getExtras().getBoolean(ConnectivityManager.EXTRA_NO_CONNECTIVITY, Boolean.FALSE)) {
_v("There's no network connectivity");
onNetworkConnection(context, false);
}
}

private void onNetworkConnection(Context context, boolean isConnected) {
//show dialog
}

}

关于java - 类似旅行顾问的对话框,并在 Android 中显示自定义背景或启动画面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14381295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com