0

一定時間後にボタンの色を変更するのに問題があります。一定時間後にハンドルを使用して変更する方法は知っていますが、ユーザーが選択した特定の時間後に色を変更する必要があります。

    public class MainActivity extends Activity {

EditText tempo;
Button bt;
int estado = 1;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    tempo = (EditText) findViewById(R.id.tempo);
    long delay = Long.parseLong(tempo.getText().toString());




     bt = (Button) findViewById(R.id.btvibrar);

    bt.setOnClickListener(new View.OnClickListener() {


        public void onClick(View arg0) {


        if(!tempo.getText().toString().equals("")){

            if(estado==1){

                  Vibrar();
                  estado*=-1;

                 bt.setText("Parar !");
                 bt.setBackgroundColor(Color.RED);

                    //Handler handler = new Handler();
                    //handler.postDelayed(new Runnable() {

                        //@Override
                        //public void run() {
                            //estado*=-1;
                            //bt.setText("Vibrar !");
                             //bt.setBackgroundColor(Color.GREEN);
                        //}
                //  },  );
                            } else {
                                Parar();
                                estado*=-1;
                                bt.setText("Vibrar !");
                                 bt.setBackgroundColor(Color.GREEN);

                                    }
                                        } else  {
                                            AlertDialog.Builder dialogo = new AlertDialog.Builder(MainActivity.this);
                                            dialogo.setTitle("Erro !");
                                            dialogo.setMessage("Escolha um tempo.");
                                            dialogo.setNeutralButton("OK", null);
                                            dialogo.show();

                                        }
        }



        private void Vibrar(){    // É necessario lançar excessao no ANDROIDMANIFEST.XML
            Vibrator rr = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
            long treal = Long.parseLong(tempo.getText().toString());
            long milliseconds = treal*1000;  
            rr.vibrate(milliseconds);
        }

        private void Parar(){
            Vibrator rr = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
            rr.cancel();
        }

    });
    }





}
4

3 に答える 3

0

どれだけのスリープ時間を入れるかに注意してください - 5 秒を超えると、システムはポップアップを表示し、アプリがハングしていることをユーザーに知らせ、アプリを閉じるよう提案します。

于 2013-04-19T17:51:10.680 に答える