Android SQLite数据库更新未发生
我试图用用户的输入更新数据库,但数据库并没有更新。下面是我的java代码,其中用户提供了新的输入&另一个DatabaseHelper代码,我试图在其中更新数据库 UpdateTour.javaAndroid SQLite数据库更新未发生,android,sqlite,android-sqlite,updates,Android,Sqlite,Android Sqlite,Updates,我试图用用户的输入更新数据库,但数据库并没有更新。下面是我的java代码,其中用户提供了新的输入&另一个DatabaseHelper代码,我试图在其中更新数据库 UpdateTour.java public class TourActivity extends AppCompatActivity { DatabaseHelper db; private LayoutInflater inflater; private FloatingActionButton fab; @Override p
public class TourActivity extends AppCompatActivity {
DatabaseHelper db;
private LayoutInflater inflater;
private FloatingActionButton fab;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tour);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
db = new DatabaseHelper(getApplicationContext());
displayList();
ListView tourList = (ListView) findViewById(R.id.tour_listview);
tourList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
inflater = TourActivity.this.getLayoutInflater();
View content = inflater.inflate(R.layout.activity_add_new_trip, null);
final EditText editEvent = (EditText) content.findViewById(R.id.edTxt_EventName);
final EditText editCashCarried = (EditText) content.findViewById(R.id.edTxt_CashCarried);
final EditText editOnTour = (EditText) content.findViewById(R.id.edTxt_TourCollection);
String ID = String.valueOf(db.getEventID(position));
String NAME = db.getTourName(position + 1);
String CASH = db.getOnTour(position + 1);
String CASHCARRIED = db.getCashCarried(position + 1);
editEvent.setText(NAME);
editCashCarried.setText(CASH);
editOnTour.setText(CASHCARRIED);
AlertDialog.Builder builder = new AlertDialog.Builder(TourActivity.this);
builder.setView(content)
.setTitle("Edit Event")
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Tour tour = new Tour();
//tour.setEventId((int) System.currentTimeMillis());
tour.setEventName(editEvent.getText().toString());
tour.setCashCarried(editCashCarried.getText().toString());
tour.setOnTourCollection(editOnTour.getText().toString());
db.updatesTour(tour);
displayList();
}
})
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog dialog = builder.create();
dialog.show();
return true;
}
});
}
private void displayList() {
ListView tourListView = (ListView) findViewById(R.id.tour_listview);
TourAdapter tourAdapter = new TourAdapter(
this,
R.layout.tour_list,
db.getAllTours()
);
tourListView.setAdapter(tourAdapter);
registerForContextMenu(tourListView);
}
}
在onclick方法中,您没有设置巡更对象的id
tour.setId(ID);
所以这个id是空的
试试这个:int i = db.update(TABLE_TOUR, values, KEY_ID + "=?" , new String[]{tour.getId()});
I的iValue的值是0I刚刚更改了setid tour.setEventId(db.getEventID(position))的值;我不应该改变setId的值,对吗?因为ID的值将检查所有行。让我们来看看。
int i = db.update(TABLE_TOUR, values, KEY_ID + "=?" , new String[]{tour.getId()});