根据Android中的微调器,从发送按钮延迟吐司 [英] Delaying toast from the send button according to spinner in Android

查看:114
本文介绍了根据Android中的微调器,从发送按钮延迟吐司的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


可能重复:

我要延迟烤面包根据您在微调器中选择的延迟,您的消息消息被发送到联系人以显示。以下代码有错误(pos),这是我的代码:

I want to delay the toast "Your message "message" is sent to "contact" to appear according to the delay the user chose in the spinner. The following codes has errors (pos), here's my code:

Handler handler = new Handler();
spinnerTimeDelay = (Spinner) findViewById(R.id.spinner_delay);
spinnerTimeDelay.setOnItemSelectedListener(this);
        ArrayAdapter<String> aa=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,items);
        aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinnerTimeDelay.setAdapter(aa);

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);
}

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

btnSend.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    String phoneNo = editTextRecipient.getText().toString();
                    String message = editTextNewMessage.getText().toString(); 
                    boolean split = false;

                final Toast toast = Toast.makeText(getBaseContext(), 
                         "Your message " + "\"" + message + "\"" + " is sent to " +"\""+ phoneNo+"\"", 
                          Toast.LENGTH_SHORT);1

                Runnable showToastRunnable = new Runnable() {
                  public void run() {
                      toast.show();
                  }
              };

                if (phoneNo.length()>0 && message.length()>0)  {
                    if (pos == 0) {
                          handler.postDelayed(showToastRunnable, 0);
                      }
                      else if (pos == 1) {
                          handler.postDelayed(showToastRunnable, 15000);
                      }
                      else if (pos == 2) {
                          handler.postDelayed(showToastRunnable, 30000);
                      }
                      else if (pos == 3) {
                          handler.postDelayed(showToastRunnable, 60000);
                      }
                }

                else
                    Toast.makeText(getBaseContext(), 
                        "Please enter both phone number and message.", 
                        Toast.LENGTH_SHORT).show();
            }
        });        
    }

我应该如何申报pos?

How should I declare the pos?

推荐答案

只需全局声明一个int变量(int count = 0)并存储所选微调器项目<$的位置c $ c>(count = pos)并在sendButton的 onClick()的if-else条件<$ c $中使用该int变量c>(if(count == 1))

Just declare one int variable (int count=0) globally and store position of selected spinner's item (count=pos) and use that int variable in your sendButton's onClick()'s if-else conditions (if(count==1))

尝试一下,

private int count=0;
 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
Handler handler = new Handler();
spinnerTimeDelay = (Spinner) findViewById(R.id.spinner_delay);
spinnerTimeDelay.setOnItemSelectedListener(this);
        ArrayAdapter<String> aa=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,items);
        aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinnerTimeDelay.setAdapter(aa);

public void onItemSelected(AdapterView<?> parent,
            View view, int pos, long id) {

           count=pos;
        if(FirstLoad){
            FirstLoad = false;
            return;                         
        }
}

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

btnSend.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v) {
                    String phoneNo = editTextRecipient.getText().toString();
                    String message = editTextNewMessage.getText().toString(); 
                    boolean split = false;

                final Toast toast = Toast.makeText(getBaseContext(), 
                         "Your message " + "\"" + message + "\"" + " is sent to " +"\""+ phoneNo+"\"", 
                          Toast.LENGTH_SHORT);1

                Runnable showToastRunnable = new Runnable() {
                  public void run() {
                      toast.show();
                  }
              };

                if (phoneNo.length()>0 && message.length()>0)  {
                    if (count == 0) {
                          handler.postDelayed(showToastRunnable, 0);
                      }
                      else if (count == 1) {
                          handler.postDelayed(showToastRunnable, 15000);
                      }
                      else if (count == 2) {
                          handler.postDelayed(showToastRunnable, 30000);
                      }
                      else if (count == 3) {
                          handler.postDelayed(showToastRunnable, 60000);
                      }
                }

                else
                    Toast.makeText(getBaseContext(), 
                        "Please enter both phone number and message.", 
                        Toast.LENGTH_SHORT).show();
            }
        });        
    }

这篇关于根据Android中的微调器,从发送按钮延迟吐司的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆