禁用按钮一段时间
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();
}
}
});
发送消息时,我想在短时间内阻止用户向同一用户发送另一条短信,例如禁用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);
我编写了以下代码来向某人发送短信...
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();
}
}
});
发送消息时,我想在短时间内阻止用户向同一用户发送另一条短信,例如禁用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);