2012-02-08 7 views
1

私は、このSQLiteにいくつかの 'Projects'が含まれています。 SQLiteデータベーステーブルの属性を持つ各「プロジェクト」がアクティビティに表示されます。私がしたいのは、アクティビティ内のボタンをクリックすると、その 'Project'のC_FAVORITE行が更新されるということです。Android:テーブル行を更新するSQL

どうすればできますか?下の更新メソッドの中に入れるにはどの引数が必要ですか?

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

テーブルの表示方法は?あなたのデータベースにORM(ormlite)を使用していますか?またはクエリ/更新を実行するdbhelperクラスを持っていますか? –

+0

DBHelperクラスを取得しました。サーバー上のJSONファイルとテーブルを同期させます。 – hectichavana

+0

最初に書籍を読んで、質問する方法を学んでください...誰もDatabase.Project.C_FAVORITEが何であるかを知っていません...文字列は更新メソッドを持っていません...私は再びそれを言う必要があります...あなたのためのプログラミングではありません...あなたは基本的な知識なしにアプリケーションを構築するつもりです – Selvin

答えて

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

句を使用すると、そこにはnullを渡すことができますどこにいない持っている場合。

0

一つの方法は、ボタンにタグを追加してつかむためにありますタグをmakeFavourite()の方法の中から選択します。それがどのように行われているかはアプリケーション構造に完全に依存します。アプリケーション構造については、何も教えてくれません。

+0

私はできますが、それはすべてのコードクラスを持つ長い地獄です。 – hectichavana

関連する問題