[英]Disable a button for a period of time
我已經編寫了以下代碼,將短信發送給某人...
Button but = (Button) a;
but.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String messageToSend = "message";
LoginDataBaseAdapter loginDataBaseAdapter = HomeActivity.loginDataBaseAdapter;
car = ((EditText) b ).getText().toString();
String phoneNum=loginDataBaseAdapter.getNum(car);
if(phoneNum !="not") {
SmsManager.getDefault().sendTextMessage(phoneNum, null, messageToSend, null, null);
Toast.makeText(view.getContext(), "MESSAGE SUCCESSFULLY SENT",Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(view.getContext(), "No Car Number found",Toast.LENGTH_SHORT).show();
}
}
});
發送消息時,我想防止用戶在短時間內向同一用戶發送另一條SMS,例如禁用but
按鈕。 任何人都可以幫助我了解如何在一段時間內禁用該按鈕。
這是實現此目的的簡單方法:
ArrayList<String> sentList = new ArrayList<>();
單擊按鈕后,使用方法將數字或名稱添加到ArrayList
sentList.add("Number");
當再次單擊按鈕時,您檢查:
for (String string : sentList){
if (!string.equalsIgnoreCase(numberToCheck)) {
//is new number - perform the action
}
}
希望這是您在尋找什么。
編輯
ArrayList<String> sentNumbers = new ArrayList<>();
Button but = (Button) a;
but.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String messageToSend = "message";
LoginDataBaseAdapter loginDataBaseAdapter = HomeActivity.loginDataBaseAdapter;
car = ((EditText) b ).getText().toString();
String phoneNum = loginDataBaseAdapter.getNum(car);
if(!sentNumbers.isEmpty(){
for (String string : sentList){
if (!string.equalsIgnoreCase(phoneNum)) {
SmsManager.getDefault().sendTextMessage(phoneNum, null, messageToSend, null, null);
sentNumbers.add(phoneNum);
Toast.makeText(view.getContext(), "MESSAGE SUCCESSFULLY SENT",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(view.getContext(), "No Car Number found",Toast.LENGTH_SHORT).show();
}
}
}else{
SmsManager.getDefault().sendTextMessage(phoneNum, null, messageToSend, null, null);
sentNumbers.add(phoneNum);
}
}
});
要清除已用號碼列表,請致電(我想某些事件一定會發生嗎?):
sentList.clear();
您可以在向服務器發送請求時取消按鈕的偵聽器,然后在獲取服務器回調時設置按鈕的偵聽器。
sendRequest(params, ServerCallback(String arg) {
public void onSuccess() {
btn.setOnClickListener(MainActivity.this);
//do something...
}
public void onFailed() {
btn.setOnClickListener(MainActivity.this);
//do something...
}
});
btn.setOnClickListener(null);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.