Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQLite数据库更新未发生_Android_Sqlite_Android Sqlite_Updates - Fatal编程技术网

Android SQLite数据库更新未发生

Android 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

我试图用用户的输入更新数据库,但数据库并没有更新。下面是我的java代码,其中用户提供了新的输入&另一个DatabaseHelper代码,我试图在其中更新数据库

UpdateTour.java

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()});