如何停止向 db sqlite 添加数据?

How can stop to add data to dbsqlite?

我的项目包括 db sqlite。它每次 运行s 时都会在数据库中添加数据。这是我的项目的代码。它将有关药房的信息添加到列表中。当它 运行 在设备中时,它会在 运行 时添加此信息。它必须在一次后停止添加信息。我该怎么做?

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.TextView;
import static com.ahmety.eczanezonguldak.Sbtalapli.*;

public class Alapli extends Activity { 
private Vtalapli data;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.alapli);

data = new Vtalapli(this);
try{addData("","","","");
addData("17.06.2015","Pharmacy Name ","pharmacy addres","pharmacy tel no");   
Cursor cursor = getData();
showData(cursor);
}
finally{
data.close();
}
}

private void addData(String date, String pharmacy, String address, String tel){

SQLiteDatabase db = data.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(DATE, date);
values.put(PH,pharmacy);
values.put(ADDRESS,address);
values.put(TEL,tel);
db.insertOrThrow(TABLE_ALAPLI, null, values);
db.isDbLockedByCurrentThread();
}

private static String[] SELECT = {DATE, PH, ADDRESS,TEL};
private Cursor getData(){
SQLiteDatabase db = data.getReadableDatabase();
Cursor cursor = db.query(TABLE_ALAPLI, SELECT, null, null, null, null, null);

startManagingCursor(cursor);
return cursor;
}

private void showData(Cursor cursor){
StringBuilder builder = new StringBuilder("                                                              Nöbetçi Eczane/Alapli\n\n\n "
    + "  Tarih                      Eczane                                            Addres                                           Tel\n");

while(cursor.moveToNext()){

String date = cursor.getString((cursor.getColumnIndex(DATE)));
String ph = cursor.getString((cursor.getColumnIndex(PH)));
String address = cursor.getString((cursor.getColumnIndex(ADDRESS)));
String tel = cursor.getString((cursor.getColumnIndex(TEL)));

builder.append(date).append("    ");
builder.append(ph).append("  ");
builder.append(address).append("  ");
builder.append(tel).append("\n");
}
TextView text = (TextView)findViewById(R.id.textalapli);
text.setText(builder);
}
} 

您在 onCreate 中有 addData 运行 宁。 onCreate 运行s 每次 class 初始化。将 addData 移到该方法之外的任何地方 运行 而不是一直 onCreate 中的 运行ning。

您可以使用 SharedPreferences 保存一个布尔值来检查您是否是第一次 运行 该应用程序。

这里有一些例子:Android Shared preferences example

您可以做的只是在您在 SQLiteOpenHelper 的实现中创建 table 之后插入数据:

public class SomeDatabase extends SQLiteOpenHelper{
    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        sqLiteDatabase.execSQL("CREATE TABLE <MYTABLE> ...");
        sqLiteDatabase.execSQL("INSERT INTO <MYTABLE> ...");
    }
}

然后就可以在Activity的onCreate方法中取出这行代码了:

addData("17.06.2015","Pharmacy Name ","pharmacy addres","pharmacy tel no"); 

您必须清除应用程序数据、删除应用程序或手动删除重复数据的所有现有实例,此操作才能生效。

只是一个旁注 - 请在发布时格式化(缩进)你的代码 - 它可以更容易地帮助你。