java - 用户单击 AlertDialog OK 按钮后如何导航到下一个 Activity ?

标签 java android

很抱歉在http://stackoverflow.com搜索后提出这个问题。但在不同部分使用以下代码时,我无法处理下一个 Activity 。

这里,当用户未连接互联网时,将在alertdialog中弹出一个警告并显示“您未连接到互联网”,当用户单击alertdilog中的退出按钮时,应用程序将关闭。 如果用户有互联网连接,则会弹出一个警告对话框,并在警报对话框中显示“您有互联网连接”,并且当用户单击继续按钮时,应用程序将继续执行下一个 Activity 。 我在继续下一个 Activity 时遇到问题,该怎么办?

以下代码显示在其部分中

AndroidDetectInternetConnectionActivity.java中的代码

package com.example.detectinternetconnection;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class AndroidDetectInternetConnectionActivity extends Activity {

 // flag for Internet connection status
Boolean isInternetPresent = false;

    // Connection detector class
ConnectionDetector cd;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

 Button btnStatus = (Button) findViewById(R.id.btn_check);

 // creating connection detector class instance
  cd = new ConnectionDetector(getApplicationContext());

    /**
     * Check Internet status button click event
     * */
    btnStatus.setOnClickListener(new View.OnClickListener() {


        @Override
        public void onClick(View v) {

            // get Internet status
        isInternetPresent = cd.isConnectingToInternet();

            // check for Internet status
        if (isInternetPresent) {
                // Internet Connection is Present
                // make HTTP requests
        AlertDialog.Builder builder = new AlertDialog.Builder(AndroidDetectInternetConnectionActivity.this);
        builder.setMessage("You have network connection.")
            .setTitle("Internet Connection")
            .setCancelable(false);
    AlertDialog alert = builder.create();
                    alert.setButton("Continue", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which){ 
                          // Do call some activity. Do what you    wish to;
startActivity(new Intent(AndroidDetectInternetConnectionActivity.this,MainActivity2.class));
                           }
                          }); 
                    alert.show();
            }

 else {
                // Internet connection is not present
                // Ask user to connect to Internet
      AlertDialog.Builder builder = new AlertDialog.Builder(AndroidDetectInternetConnectionActivity.this);
       builder.setMessage("You need a network connection to use this application. Please turn on mobile network or Wi-Fi in Settings.")
         .setTitle("No Internet Connection")
         .setCancelable(false);
    AlertDialog alert = builder.create();
    alert.setButton2("Exit", new DialogInterface.OnClickListener(){
                    public void onClick(DialogInterface dialog, int which) {
                         //close the program
                    AndroidDetectInternetConnectionActivity.this.finish();
        }
            });
                      // Showing Alert Message
               alert.show();
                 }
        }

ConnectionDetector.java中的代码 包 com.example.Detectinternetconnection;

import android.app.AlertDialog;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class ConnectionDetector {

private Context _context;

public ConnectionDetector(Context context){
    this._context = context;
}

public boolean isConnectingToInternet(){
    ConnectivityManager connectivity = (ConnectivityManager) _context.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;
}
}

AndroidManifest.xml中的代码

  <?xml version="1.0" encoding="utf-8"?>
  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.detectinternetconnection"
  android:versionCode="1"
  android:versionName="1.0" >

 <uses-sdk android:minSdkVersion="8" />

 <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".AndroidDetectInternetConnectionActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".MainActivity2"></activity>
  </application>

 <!-- Internet Permissions -->
 <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

 </manifest>

请告诉我哪里做错了?

最佳答案

总的代码很好,但最后只是通过create()创建初始化alertdialog..

    if (isInternetPresent) {              
    // Internet Connection is Present
   // make HTTP requests
    AlertDialog.Builder builder = new   AlertDialog.Builder(AndroidDetectInternetConnectionActivity.this);
    builder.setMessage("You have network connection.")
        .setTitle("Internet Connection")
        .setCancelable(false);

                alert.setPositiveButton("Continue", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which){ 
                      // Do call some activity. Do what you    wish to;
         startActivity(new  Intent(AndroidDetectInternetConnectionActivity.this,MainActivity2.class));
                  }
               }); 
          AlertDialog alert = builder.create();
                alert.show();

编辑

这是您的总 Activity 类别。

package com.example.detectinternetconnection;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class AndroidDetectInternetConnectionActivity  extends Activity implements   OnClickListener {

Boolean isInternetPresent = false;
ConnectionDetector cd;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    Button btnStatus = (Button) findViewById(R.id.btnStatus);
    cd = new ConnectionDetector(getApplicationContext());
    btnStatus.setOnClickListener(this);
}

@Override
public void onClick(View v) {
    isInternetPresent = cd.isConnectingToInternet();
    if (isInternetPresent) {

        AlertDialog alert;
        AlertDialog.Builder builder = new AlertDialog.Builder(
                AndroidDetectInternetConnectionActivity .this);
        builder.setTitle("Internet Connection");
        builder.setCancelable(false);

        builder.setPositiveButton("Continue",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        startActivity(new Intent(AndroidDetectInternetConnectionActivity .this,
                                MainActivity2 .class));
                    }
                });

        alert = builder.create();
        alert.show();
    }

    else {

        AlertDialog alert;
        AlertDialog.Builder builder = new AlertDialog.Builder(
                AndroidDetectInternetConnectionActivity .this);
        builder.setTitle("No Internet Connection");
        builder.setMessage("Please Connect To Internet");
        builder.setCancelable(false);

        builder.setPositiveButton("Exit",
                new DialogInterface.OnClickListener() {

                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                });

        alert = builder.create();
        alert.show();
    }
}

}

我想你会照顾其他类(class)。有关一些知识,你可以引用Android Dialog开发者网站上的教程。

关于java - 用户单击 AlertDialog OK 按钮后如何导航到下一个 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21546909/

相关文章:

c# - 在 android 中扫描 QR 码后停止 instascan 提醒手机

android studio 3模拟器,如何为语音识别启用麦克风输入

android - 带有按钮背景和 Activity 布局的 If 语句

java - JAX-B : Missing XML attributes on child elements

java - 如何使 JFrame 或 JPanel 可滚动

java - 表达式与运算符优先级的从左到右求值。为什么从左到右的评估似乎胜出?

应用程序关闭后,Android 智能位置库始终连接到 gps

java - 为什么 Build.VERSION.SDK_INT 显示的数字不正确?

java - 将 JAVA_HOME 设置为 JDK 位置 mac osx 10.9.5

java - 优化 Eclipse