单击listview行时如何将数据移动到另一个表中?

时间:2017-04-15 10:43:34

标签: java android sqlite listview android-sqlite

当我点击listview行上的完整按钮时,我必须将数据从任务表移动到task_complete表中。我不知道如何在dbhelper和onclick按钮上编码。这是我的一些代码。请帮帮我。

这是我的dbhelper中的代码

private static final String CREATE_QUERYTASK =
        "CREATE TABLE "+ UserData.NewTaskInfo.TABLE_NAME+ "("
                + UserData.NewTaskInfo.ID + " INTEGER PRIMARY KEY," + UserData.NewTaskInfo.TITLE+" TEXT,"+
                UserData.NewTaskInfo.DUEDATE+" TEXT,"+ UserData.NewTaskInfo.TIME_SUBMISSION+" TEXT,"+
                UserData.NewTaskInfo.DIFFICULTY+" TEXT,"+ UserData.NewTaskInfo.ASSESSMENTMARK+" TEXT);";
private static final String CREATE_QUERYTASKCOMPLETE =
        "CREATE TABLE "+ UserDataComplete.CompleteTaskInfo.TABLE_NAME+ "("
                + UserDataComplete.CompleteTaskInfo.ID_COMPLETE + " INTEGER PRIMARY KEY," + UserDataComplete.CompleteTaskInfo.TITLE_COMPLETE+" TEXT,"+
                UserDataComplete.CompleteTaskInfo.DUEDATE_COMPLETE+" TEXT,"+ UserDataComplete.CompleteTaskInfo.TIME_SUBMISSION_COMPLETE+" TEXT,"+
                UserDataComplete.CompleteTaskInfo.DIFFICULTY_COMPLETE+" TEXT,"+ UserDataComplete.CompleteTaskInfo.ASSESSMENTMARK_COMPLETE+" TEXT);";

@Override
public void onCreate(SQLiteDatabase db) {
    //create required tables
    db.execSQL(CREATE_QUERYTASK);
    db.execSQL(CREATE_QUERYTASKCOMPLETE);
    Log.e("DATABASE OPERATIONS", "Table created...");
}

 public void completeTask(String comptitle,String compduedate,String comptimesubsmission, String compdifficulty, String compassessmentmark,SQLiteDatabase sqLiteDatabase)
{    

}

我的StatusActivity中的此代码

    TaskTitle=(TextView) findViewById(R.id.title);
    TaskDuedate=(TextView) findViewById(R.id.duedate);
    TaskTimeSubmission=(TextView) findViewById(R.id.time_submission);
    TaskDifficulty=(TextView) findViewById(R.id.difficulty);
    TaskMark=(TextView) findViewById(R.id.assessmentmark);

    completeButton = (Button)findViewById(R.id.completebutton);
    listview=(ListView) findViewById(R.id.list_view);
    listDataAdapter=new ListDataAdapter(getApplicationContext(),R.layout.row_layout);
    listview.setAdapter(listDataAdapter);
    userDBHelper=new UserDbHelper(getApplicationContext());
    sqLiteDatabase=userDBHelper.getReadableDatabase();
    cursor=userDBHelper.getInformation(sqLiteDatabase);
    if (cursor.moveToFirst()) {
        do {
            String title, duedate, time_submission, time_completion, carrymark;
            title = cursor.getString(0);
            duedate = cursor.getString(1);
            time_submission = cursor.getString(2);
            time_completion = cursor.getString(3);
            carrymark = cursor.getString(4) + "% Mark";
            DataProvider dataProvider = new DataProvider(title, duedate, time_submission, difficulty, assessmentmark);
            listDataAdapter.add(dataProvider);

        } while (cursor.moveToNext());

    }
}

public void completeTask(View view)
{

    String title = TaskTitle.getText().toString();
    String duedate = TaskDuedate.getText().toString();
    String time_submission = TaskTimeSubmission.getText().toString();
    String difficulty = TaskDifficulty.getText().toString();
    String assessmentmark = TaskMark.getText().toString();

    userDBHelper = new UserDbHelper(context);
    sqLiteDatabase = userDBHelper.getReadableDatabase();
    userDBHelper.completeTask(title,duedate,time_submission,difficulty,assessmentmark,sqLiteDatabase);
    Toast.makeText(getBaseContext(),"Task complete",Toast.LENGTH_LONG).show();

}

1 个答案:

答案 0 :(得分:0)

我认为您要求sql查询将数据插入该表

  

您可以使用ContentValues将数据插入数据库

  public void completeTask(String comptitle,String compduedate,String comptimesubsmission, String compdifficulty, String compassessmentmark,SQLiteDatabase sqLiteDatabase)

    {    

SQLiteDatabase db = sqLiteDatabase.getWritableDatabase();

    Content values = new ContentValues();
values.put("@ColumnName", @value);
  

指定列名| @ColumnName |和你的价值| @value |

db.insert("@TableName", null, values);

    sqLiteDatabase.close();
    };