我有一个包含许多'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));
...
答案 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()
- 方法中抓取标签。具体如何完成取决于您的应用程序结构,您不会告诉我们任何事情。