我在应用程序中有一个保存按钮,它似乎并没有保存它应该保存的内容。Android保存按钮不保存到数据库中
这是功能按钮呼叫:
public void newsave (View rootView) {
final Dbhandler dbHandler = new Dbhandler(this.getActivity());
final String distance = (result2.getText().toString());
AlertDialog.Builder builder = new AlertDialog.Builder(this.getActivity());
builder.setTitle("Description");
final AlertDialog dialog =builder.create();
// Set up the input
final EditText input = new EditText(this.getActivity());
input.setOnFocusChangeListener(new
View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
});
// Specify the type of input expected; this, for example, sets the input as a password, and will mask the text
input.setInputType(InputType.TYPE_CLASS_TEXT);
builder.setView(input);
// Set up the buttons
builder.setPositiveButton("Save", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
m_Text = input.getText().toString();
String ddesc = m_Text;
//saveDistance distances = new saveDistance(ddesc,distance);
try {
dbHandler.addDistances(1,ddesc, distance);
Toast.makeText(getActivity(), "Save Successful", Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(getActivity(), e.toString(), Toast.LENGTH_LONG).show();
}
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
这是我的数据库处理类
package com.spydotechcorps.hwfar.database;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import com.spydotechcorps.hwfar.provider.MyContentProvider;
/**
* Created by INGENIO on 3/8/2015.
*/
public class Dbhandler extends SQLiteOpenHelper {
private ContentResolver myCR;
private static int DATABASE_VERSION = 2;
private static String DATABASE_NAME = "distanceDB.db";
public static String TABLE_DISTANCES = "distances";
public static final String COLUMN_ID ="_id";
public static final String COLUMN_DESCRIPTION = "COLUMN_DESCRIPTION";
public static final String COLUMN_DISTANCE = "COLUMN_DISTANCE";
public Dbhandler(Context context
//, String name,
//SQLiteDatabase.CursorFactory factory, int version
) {
super(context, DATABASE_NAME,
//factory
null, DATABASE_VERSION);
myCR = context.getContentResolver(); // obtaining reference to content resolver in content provider
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_DISTANCES_TABLE = "CREATE TABLE " +
TABLE_DISTANCES + "("
+
COLUMN_ID +
" _id INTEGER PRIMARY KEY," + COLUMN_DESCRIPTION
+ " TEXT," + COLUMN_DISTANCE + " REAL" + ")";
db.execSQL(CREATE_DISTANCES_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion,
int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_DISTANCES);
onCreate(db);
}
public void addDistances(int c,String a,String b) {
ContentValues values = new ContentValues();
values.put(COLUMN_ID,c);
values.put(COLUMN_DESCRIPTION, a);
values.put(COLUMN_DISTANCE, b);
myCR.insert(MyContentProvider.CONTENT_URI, values);
}
public saveDistance findDistances(String Distancesname) {
String[] projection = {
COLUMN_ID,
COLUMN_DESCRIPTION, COLUMN_DISTANCE };
String selection = "Distancesname = \"" + Distancesname + "\"";
Cursor cursor = myCR.query(MyContentProvider.CONTENT_URI,
projection, selection, null,
null);
saveDistance Distances = new saveDistance();
if (cursor.moveToFirst()) {
cursor.moveToFirst();
Distances.setID(Integer.parseInt(cursor.getString(0)));
Distances.setdesc(cursor.getString(1));
Distances.setdistance(cursor.getString(2));
cursor.close();
} else {
Distances = null;
}
return Distances;
}
public boolean deleteDistances(String Distancesname) {
boolean result = false;
String selection = "Distancesname = \"" + Distancesname + "\"";
int rowsDeleted = myCR.delete(MyContentProvider.CONTENT_URI,
selection, null);
if (rowsDeleted > 0)
result = true;
return result;
}
}
这是saveDistance类
package com.spydotechcorps.hwfar.database;
/**
* Created by INGENIO on 3/8/2015.
*/
public class saveDistance {
public int _id;
public String _desc;
public String _distance;
public void Distances() {
}
/*public void Distances(int id, String desc, String distance) {
this._id = id;
this._desc = desc;
this._distance = distance;
}*/
public void Distances(
//int k,
String desc, String distance) {
//this._id=1;
this._desc = desc;
this._distance = distance;
}
public void setID(int id) {
this._id = id;
}
public int getID() {
return this._id;
}
public void setdesc(String desc) {
this._desc = desc;
}
public String getdesc() {
return this._desc;
}
public void setdistance(String distance) {
this._distance = distance;
}
public String getdistance() {
return this._distance;
}
}
什么错误,你究竟是在logcat的接收。?? – Pallav
@ Pallav:它不会在logcat中带来任何错误,它只是不保存 – Spydo