我开发了一个应用程序,它将消息作为输入并将其发送到存储在数据库中的预定义数字!知道问题是我在数据库中插入数字当应用程序加载到 oncreate()方法时,每次我发送消息时,如果它发送消息到4号码,那么它会发送短信到8个数字,累了移动我的数据插入代码,以便它只会插入数据一次不是每次加载,但它不工作,请任何一个helppp感谢!!
btnSendSMS.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
//loop++;
db.open();
//loop++;
long id;
id = db.insertTitle(
"5556");
id = db.insertTitle(
"5556");
id = db.insertTitle(
"5556");
id = db.insertTitle(
"5556");
db.close();
message = txtMessage.getText().toString();
if ( message.length()>0 && message.length()<200)
{
db.open();
Cursor c = db.getAllTitles();
if (c.moveToFirst())
{
String phoneNo;
do { phoneNo=c.getString(1) ;
sendSMS(phoneNo,message);
count++;
// db.DisplayTitle(c);
Toast.makeText(DatabaseSmsActivity.this,"sms no : "+count,Toast.LENGTH_LONG).show();
} while (c.moveToNext());
}
db.close();
// Toast.makeText(DatabaseSmsActivity.this,"Total SMS sent : "+count,Toast.LENGTH_LONG).show();
}
else
{Toast.makeText(getBaseContext(),
"Please enter message.",
Toast.LENGTH_SHORT).show();}
}
});
}
答案 0 :(得分:0)
每次onCreate()调用时不要插入数字只需插入一次,然后从更新前一个数字的时间开始。我认为这将解决您的问题
答案 1 :(得分:0)
每当用户点击按钮时,使用此代码,数字5556
将被插入数据库四次。这意味着当用户再次单击该按钮时,会添加另外四行5556
行。
我认为你试图制作,当用户点击按钮时,只将短信发送到数据库中预定义的4号码号码?
如果是这样的话:
为您的活动添加静态变量
public static final String PREFS = "prefs";
private SharedPreferences preferences;
在您的活动的onCreate方法上调用类似enterNumbersToDatabase()
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
preferences = getSharedPreferences(PREFS, MODE_PRIVATE);
enterNumbersToDatabase();
}
enterNumbersToDatabase函数:
private void enterNumbersToDatabase(){
if(!preferences.getBoolean("isNumbersAddedToDB", false)){
db.open();
long id;
id = db.insertTitle("5556");
id = db.insertTitle("5556");
id = db.insertTitle("5556");
id = db.insertTitle("5556");
db.close();
SharedPreferences.Editor preferencesEditor = preferences.edit();
preferencesEditor.putBoolean("isNumbersAddedToDB", true)
preferencesEditor.commit();
}
}
在按钮的onClick功能中,跳过adding numbers to database part
即可。
希望这有帮助