0

ネットワークが利用できないか無効になっているときに、アプリケーションにトーストメッセージが表示されませんでしたか?以下にコードを挿入しましたが、接続が利用可能かどうかを確認していないようです。ネットワークが利用可能な場合は正常に機能しますが、ネットワークを無効にするとエラーメッセージが表示されず、他のネットワークは利用できませんでした。

if (position == 2)

{

    final ConnectivityManager connMgr = (ConnectivityManager)  
            getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connMgr  
            .getActiveNetworkInfo();
    android.net.NetworkInfo mobile1 =  
            connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

    if (activeNetworkInfo == null) {
        Toast.makeText(LoginScreen.this, "No   
                Active Network",Toast.LENGTH_LONG).show();
    } else {

        if (activeNetworkInfo.isConnected()) {

            btnLogin.setOnClickListener(new OnClickListener() {


                public  void onClick(View view) {
                    String pinemptycheck = pin.getText().toString();
                    String mobileemptycheck = mobile.getText().toString();
                    if  (pinemptycheck.trim().equals("")||  
                            (mobileemptycheck.trim().equals("")))
                    {


                        Toast.makeText(getApplicationContext(), "Please Enter Correct Information",  
                                Toast.LENGTH_LONG).show();


                    } 


                    else
                    {

                        showProgress();
                        postLoginData();
                    }

                }
            });
        } else if  
        (activeNetworkInfo.isConnectedOrConnecting()) {

            Toast.makeText(LoginScreen.this,    "network is Connecting", Toast.LENGTH_LONG)  
            .show();
        } else if (mobile1.isAvailable()) {

            btnLogin.setOnClickListener(new  
                    OnClickListener() {

                public  void onClick(View view) {

                    showProgress();

                    postLoginData();                                    

                }
            });
        } else if (!mobile1.isAvailable()) {

            Toast.makeText(LoginScreen.this,"No other Connection Found  
                    ",Toast.LENGTH_LONG).show();
                    btnLogin.setOnClickListener(new OnClickListener() {
                        public void onClick(View v)

                        {

                            Toast.makeText(LoginScreen.this," No other Connection Found", Toast.LENGTH_LONG).show();
                        }

                    });
        }}}
4

1 に答える 1

0

問題は、onClickListener の上ではなく、onClickListener 内で接続の可用性を確認する必要があることです。

その理由の背後には、onCreate 呼び出し時にネットワークが存在すると想定されるため、常に true が返されるため、ボタンをクリックしたときに接続が利用可能かどうかを確認します。

于 2012-10-02T12:02:37.463 に答える