-2

電話をかけるメソッドがあります。数と遅延は、2 つの編集テキスト ボックスの文字列から取得されます。それは正常に動作します。しかし、私はそれをループに入れて、終了する前に何度も同じことをしたいと思います。

私のコードは -

public void makeCall(View view) {

             //create handler for phone call

         Handler delayedCallHandler = new Handler() {
              public void handleMessage(Message msg) {
                String num = (String) msg.obj;

                Intent intent = new Intent(Intent.ACTION_CALL);
                intent.setData(Uri.parse(num));
                startActivity(intent);
              }
            };


            //Grabs milli seconds count from edit text box

               EditText edit_seconds = (EditText)
                    findViewById(R.id.seconds);
               CharSequence edit_seconds_value =
                    edit_seconds.getText();

               int secondz = Integer.parseInt(edit_seconds_value.toString());                    

            // Grabs TXT Char from MSISDN edit text box and converts to edit_text_value
            EditText edit_text = (EditText)
                    findViewById(R.id.msisdn);
               CharSequence edit_text_value =
                    edit_text.getText();

            //Delay phone call

            delayedCallHandler.sendMessageDelayed(
                    delayedCallHandler.obtainMessage(0, "tel:" + edit_text_value), // msg.obj = the number to call
                    secondz); // 50 seconds

            // Toast Popup when call set button pressed

            Toast toast=Toast.makeText(this, "You have now set the call for " + edit_seconds_value + "milliseconds" , Toast.LENGTH_LONG); 
            toast.show();  

    }        
4

3 に答える 3

0

単純。おもう。Ok。10回繰り返したいとしましょう。そして、あなたのメソッドは「method()」と呼ばれています

//BEFORE YOUR ONCREATE
int count = 1;
//PUT THIS WHEREVER YOU WANT TO CALL YOUR METHOD
while(count<=10){
    method();
    count++;
}

次に、この後にmethod()を設定します(OnCreateの外部)

private void method() {
    //DO ALL YOUR STUFF HERE

}

つまり、これにより、method()というメソッドが作成されます。

次に、値が1のcountというintを作成します。

次に、それはあなたの方法を実行し、「カウント」に1を追加します

したがって、「count」の値は2になります。

カウントはまだ10未満なので、メソッドを再度実行します。

そして再び...そしてcount=10まで再び

その後、停止します。

method()の名前を好きな名前に変更し、やりたいことを追加します。

于 2012-05-20T00:21:37.297 に答える
0

非常にシンプルです。Threadクラス、TimerTaskクラス、またはAlarmManagerクラスを使用できます。Thread および TimerTask クラスでは、スリープ時間が必要になります。

于 2012-05-19T08:45:53.700 に答える
0

で CALL アクティビティを起動できますstartactivityForResult()。次にOnActivtyResult、遅延メッセージを送信して次の呼び出しを開始します。

@Override
void onActivityResult(...) {
   ....
   if (count <= NUMBER_OF_CALLS) {
       delayedCallHandler.sendMessageDelayed(
                    delayedCallHandler.obtainMessage(0, "tel:" + edit_text_value), // msg.obj = the number to call
                    secondz); // 50 seconds
       count++;
   }
   ....
}
于 2012-05-19T09:04:25.393 に答える