Android:更新表行SQL

时间:2012-02-08 11:37:36

标签: android

我有一个包含许多'Projects'的SQLite。每个具有SQLite数据库表属性的“项目”都显示在活动中。我想要做的是,当点击活动中的按钮时,它会更新该项目的C_FAVORITE行。

我怎么能这样做?我需要在下面的更新方法中添加哪些参数?

public void makeFavorite() {
Database.Project.C_FAVORITE.update(.......);
}

这就是我在活动中显示项目属性的方式:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.project);

        loader = new ImageLoader(this);
            Intent intent = getIntent();
            if (intent != null) {
                Uri uri = intent.getData();
                if (uri != null) {
                    final Cursor cursor = managedQuery(uri, new String[] {
                            BaseColumns._ID, Database.Project.C_PROJECTTITLE, Database.Project.C_ORGANIZATIONTITLE,
                            Database.Project.C_PROJECTDESCRIPTION,Database.Project.C_BIGIMAGE,Database.Project.C_DONATIONAMOUNT,Database.Project.C_ADDRESS,Database.Project.C_WEBSITE,Database.Project.C_SHORTCODE,Database.Project.C_KEYWORD,Database.Project.C_PRICE,Database.Project.C_CAMPAIGNID,Database.Project.C_PAYPALEMAIL,Database.Project.C_ELVAVAILABLE}, null, null, null);

                    if (cursor == null) {
                        finish();
                    } else {
                        if (cursor.moveToFirst()) {
                            ImageView img = (ImageView) findViewById(R.id.project_image);
                            TextView project_title = (TextView)findViewById(R.id.txt_project_title);
                               project_title.setText(cursor.getString(1));

...

2 个答案:

答案 0 :(得分:7)

您可以尝试如下:

public SQLiteDatabase sqd;

//Create connection of database

public void makeFavorite(String fieldname,String c_fav_value) {
ContentValues cv = new ContentValues();
cv.put(fieldname,c_fav_value);
int i= sqd.update(table_name, cv, where, where_clause);
}

如果你没有where子句,你可以在那里传递null。

答案 1 :(得分:0)

一种方法是在按钮中添加标签,并从makeFavourite() - 方法中抓取标签。具体如何完成取决于您的应用程序结构,您不会告诉我们任何事情。