0

可能ですか?? アクティビティとアラート ダイアログがあります。しかし、最初にアクティビティを実行する必要があり、2 秒後にアラート ダイアログが表示されます。方法がわかりません。よろしく

pd: 私は英語話者ではありません

public class Pantalladeinicio extends Activity {

private final int SPLASH_DISPLAY_LENGTH = 2000; 

 @Override
 public void onCreate(Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);
  requestWindowFeature(Window.FEATURE_NO_TITLE); 
  getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.FLAG_FULLSCREEN);
  setContentView(R.layout.index);


  if(checkInternetConnection()==true) {

  new Handler().postDelayed(new Runnable() {

   public void run() {
    Intent mainIntent = new Intent(Pantalladeinicio.this,
      NetworkingActivity.class);
    mainIntent.putExtra("MAIN", true);
    startActivity(mainIntent);
    finish();
   }
  }, SPLASH_DISPLAY_LENGTH); 

  } 

  else
  {
         AlertDialog.Builder dialogo1 = new AlertDialog.Builder(this);  
            dialogo1.setTitle("Importante");  
            dialogo1.setMessage("Debe activar la Conexion a Internet");            
            dialogo1.setCancelable(false);  
            dialogo1.setPositiveButton("Aceptar", new  DialogInterface.OnClickListener() { 


                public void onClick(DialogInterface dialogo1, int id) {  

                    aceptar();  
                }  
            }); 
            dialogo1.show();
      Log.v("TAG", "Internet Connection Not Present");


  }






 }


 public void aceptar() {
       // Toast t=Toast.makeText(this,"Bienvenido a probar el programa.", Toast.LENGTH_SHORT);

     super.onDestroy();
      finish();

    }



 private boolean checkInternetConnection() {
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        // test for connection
        if (cm.getActiveNetworkInfo() != null
                && cm.getActiveNetworkInfo().isAvailable()
                && cm.getActiveNetworkInfo().isConnected()) {
            return true;
        } else {
            //Log.v("TAG", "Internet Connection Not Present");

            return false;
        }
    }

}

4

3 に答える 3

1

私はあなたの質問を理解していませんが、受け入れられた回答を見て、既存のコードの順序を変更することをお勧めします:

new Handler().postDelayed(new Runnable() {
    public void run() {
        if(checkInternetConnection()) {
            Intent mainIntent = new Intent(Pantalladeinicio.this, NetworkingActivity.class);
            mainIntent.putExtra("MAIN", true);
            startActivity(mainIntent);
            finish();
        } 
        else
        {
            AlertDialog.Builder dialogo1 = new AlertDialog.Builder(this);  
            dialogo1.setTitle("Importante");  
            dialogo1.setMessage("Debe activar la Conexion a Internet");            
            dialogo1.setCancelable(false);  
            dialogo1.setPositiveButton("Aceptar", new  DialogInterface.OnClickListener() { 
                public void onClick(DialogInterface dialogo1, int id) {  
                    aceptar();  
                }  
            }); 
            dialogo1.show();
            Log.v("TAG", "Internet Connection Not Present");
        }
    }
}, SPLASH_DISPLAY_LENGTH); 
于 2012-11-30T20:38:07.450 に答える
0

Threadとを使用してコードを変更しますrunOnUiThread

  //Your Code here...
    else
      {
    myThread();
      }
    }
    public void myThread(){
        Thread th=new Thread(){

         @Override
         public void run(){
          try
          {

           Thread.sleep(2000);
           Pantalladeinicio.this.runOnUiThread(new Runnable() {

            @Override
            public void run() {
             // TODO Auto-generated method stub
                AlertDialog.Builder dialogo1 = new AlertDialog.Builder(Pantalladeinicio.this);  
                dialogo1.setTitle("Importante");  
                dialogo1.setMessage("Debe activar la Conexion a Internet");            
                dialogo1.setCancelable(false);  
                dialogo1.setPositiveButton("Aceptar", new  DialogInterface.OnClickListener() { 


                    public void onClick(DialogInterface dialogo1, int id) {  

                        aceptar();  
                    }  
                }); 
                dialogo1.show();
          Log.v("TAG", "Internet Connection Not Present");
               }
           });

          }catch (InterruptedException e) {
        // TODO: handle exception
       }
    }
        };
        th.start();
       }
于 2012-11-30T20:00:28.733 に答える
0

else ブロックに入ってから 2 秒間待ちたいと思います。Thread.sleep(2000);を呼び出す前に を呼び出すことで、これを行うことができますdialogo1.show();。ただし、これにより、プログラムが「フリーズ」したように見えます。これを回避するために、スリープしてからダイアログを表示する別のスレッドを作成できます。

于 2012-11-30T20:00:56.160 に答える