0

問題の説明:

私のアプリにはメインウィンドウがあります。ボタンをクリックすると、wifiまたは3gに接続されていることを確認します。接続されていない場合は、wifiを有効にするダイアログがポップアップ表示されます。Wi-Fiがオンになっていてボタンをクリックすると、新しい画面が表示されます。戻るボタンを押してwifiを無効にし、そのボタンをもう一度クリックすると、wifiは再度要求されず、画面はwifiなしで表示されます。

ボタンのClickイベントで私は持っています:

 if(chosedOption == curOption)
            {
                if(network)
                {
                    target = CurrencyMain.class;
                    go.setAnimation(a);
                }
                else
                    askForWifi();
            }

そしてaskForWifiメソッドで私は持っています:

public void askForWifi()
 {
    is3g = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected();
    isWifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected();
    network = is3g||isWifi;
     if(!network)
        {    
         AlertDialog alertbox = new AlertDialog.Builder(MainWindowYuval.this).create();
         alertbox.setMessage("Enable wifi of 3g!");
         alertbox.setButton("cancel", new DialogInterface.OnClickListener() {  
                @Override  
                public void onClick(DialogInterface dialog, int which) {  
                    dialog.dismiss();                      
                }  
            });  

         alertbox.setButton2("Turn wifi on", new DialogInterface.OnClickListener() {  
                @Override  
                public void onClick(DialogInterface dialog, int which) {
                    WifiManager wifiManager = (WifiManager) MainWindowYuval.this.getSystemService(Context.WIFI_SERVICE);
                    wifiManager.setWifiEnabled(true);                     
                }  
            });

         alertbox.show();

        }
        is3g = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnected();
        isWifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnected();
        network = is3g||isWifi;

 }

これを修正するにはどうすればよいですか?

4

2 に答える 2

0

代わりに2番目の画面でWiFiをチェックしてみませんか?そこにない場合は、そこで有効にする、ホーム画面に送り返すように依頼します。

于 2011-07-08T12:02:58.213 に答える
0

network2番目の画面を呼び出すかどうかを決定する前に、必ずの値を更新してください。何かのようなもの:

askForWiFi();
if(network){
   invoke...
}else{
   go to settings
}
于 2011-07-08T12:26:48.003 に答える