Получение значений счетчика и его задержка

#android #sms #delay

#Android #sms #задержка

Вопрос:

Есть ли способ, которым я могу получить выбранную пользователем временную задержку в счетчике и установить для нее функции, чтобы я мог отложить сообщение? Но тогда я могу отложить сообщение? Вот код для счетчика:

 // Spinner
    public void onItemSelected(AdapterView<?> parent,
            View view, int pos, long id) {
        if(FirstLoad){
            FirstLoad = false;
            return;                         
        }
          Toast.makeText(parent.getContext(), "You chose "   
              parent.getItemAtPosition(pos).toString()  " to delay", Toast.LENGTH_LONG).show();
        }

        public void onNothingSelected(AdapterView<?> parent) {
          return;
        }
 

Возможно ли, что я могу отложить отправку sms?

Комментарии:

1. Сначала четко задайте вопрос…

2. Во-первых, у меня есть счетчик, в котором есть 4 значения, 15, 30, 60 секунд и без задержки. Итак, очевидно, что когда он выбрал, как долго длится задержка, она будет реализована первой, прежде чем продолжить отправку sms (например, пользователь выбрал 15 секунд задержки, затем он нажал отправить, задержка будет реализована первой, через 15 секунд появится всплывающее окно, указывающее, что sms было отправлено. Есть ли способ, которым я могу получить значения того, что выбрал пользователь, и установить для него методы, такие как таймер, чтобы я мог отложить отправку sms?

Ответ №1:

Используйте обработчик.С помощью postDelayed вы можете установить время задержки. Вот ссылка

   final Handler handler = new Handler() {

 @Override
public void handleMessage(Message msg) {
super.handleMessage(msg);        

    Bundle bundle = (Bundle) msg.obj;
String strDelay= bundle.getString("delay");

   // Here you can do what ever you want
}
};



public void onItemSelected(AdapterView<?> parent,
        View view, int pos, long id) {                
   Message message = new Message();
   Bundle bun = new Bundle();
   bun.putString("delay", parent.getItemAtPosition(pos).toString());
   message.obj = bun;
   handler.sendMessageDelayed(msg, Your_Delay_Time_in_Long);
         }
 

Комментарии:

1. Но как я могу получить значение выбранного счетчика и реализовать обработчик?

2. Во время выбора элемента вы должны отправить сообщение обработчику. Из сообщения вы можете получить пакет, затем через этот пакет вы можете передавать значения..

3. Должен ли я помещать операторы if-else в обработчик для других времен задержки? и «сообщение об ошибке» указывает на ошибку в выбранном onItemSelected, поэтому я изменил его на «сообщение».