2012-08-03 20 views
0

其對應的ID我有以下兩個文件:如何從ListView中選擇一個項目,看到SQLite數據庫

podatkovna_baza.java

package com.example.ultimate.basketball.stats; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 


public class podatkovna_baza extends SQLiteOpenHelper { 
    public static final String DATABASE_NAME = "baza5"; 

    public podatkovna_baza(Context context) { 
     super(context, DATABASE_NAME, null, 1); 
    } 


    @Override 
    public void onCreate(SQLiteDatabase baza5) { 
     /* 
     * Create the employee table and populate it with sample data. 
     * In step 6, we will move these hardcoded statements to an XML document. 
     */ 
     String sql = "CREATE TABLE IF NOT EXISTS ekipe4 (" + 
             "_id INTEGER PRIMARY KEY AUTOINCREMENT, " + 
             "ime_ekipe TEXT, " + 
             "kratko_ime TEXT, " + 
             "kraj TEXT, " + 
             "slika TEXT)"; 
     baza5.execSQL(sql); 

     ContentValues values = new ContentValues(); 

     values.put("ime_ekipe", "Drustvo partizan"); 
     values.put("kratko_ime", "DRP"); 
     values.put("kraj", "Mirna"); 
     values.put("slika", "jajaja"); 
     baza5.insert("ekipe4", null, values); 
    } 


    @Override 
    public void onUpgrade(SQLiteDatabase baza5, int oldVersion, int newVersion) { 
     baza5.execSQL("DROP TABLE IF EXISTS ekipe4"); 
     onCreate(baza5); 
    }  
} 

osnovni_meni.java

package com.example.ultimate.basketball.stats; 


import android.app.Activity; 
import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.os.Bundle; 
import android.os.Vibrator; 
import android.view.Menu; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.EditText; 
import android.widget.ListAdapter; 
import android.widget.ListView; 
import android.widget.SimpleCursorAdapter; 



public class osnovni_meni extends Activity { 
    protected SQLiteDatabase baza5; 
    protected Cursor cursor; 
    protected ListAdapter adapter; 
    protected ListView ekipe_list; 
    protected EditText searchtext; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_osnovni_meni); 
     baza5 = (new podatkovna_baza(this)).getWritableDatabase(); 

     //searchtext = (EditText) findViewById (R.id.searchText); 
     //searchText = (EditText) findViewById (R.id.searchText); 
     //employeeList = (ListView) findViewById (R.id.list); 
    } 


    public void hello(View view) { 
     //cursor = baza2.rawQuery("SELECT ime_ekipe, kratko_ime, kraj FROM ekipe2" , null); 

     ekipe_list = (ListView) findViewById (R.id.lista); 

     cursor = baza5.query("ekipe4", null, null, null, null, null, 
         "_id" + " ASC"); 

     adapter = new SimpleCursorAdapter(
         this, 
         R.layout.ekipe_layout, 
         cursor, 
         new String[] {"_id","kratko_ime","kraj"}, 
         new int[] {R.id.ime_ekipe,R.id.kratko_ime,R.id.kraj}); 
     ekipe_list.setAdapter(adapter); 
     String sadas=adapter.toStr 
    } 


    public void delete_byID(int id) { 
     baza5.delete("ekipe4", "_id"+"="+id, null); 
    } 


    public void delete_by_ime_ekipe(String ime) { 
     baza5.delete("ekipe4", "kraj"+"="+ime, null); 
    } 


    public int deleteAll() { 
     return baza5.delete("ekipe4", null, null); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_osnovni_meni, menu); 
     return true; 
    } 


    public void onBackPressed() { 
     // TODO Auto-generated method stub 
     //super.onBackPressed(); 
     finish(); 
    } 


    public void vibriraj() 
    { 
     Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);    
     v.vibrate(30);  
    } 


    public void vpisi(View view) 
    { 
     ContentValues values1 = new ContentValues(); 
     //values1.put("_id", "1"); 
     values1.put("ime_ekipe", "Chicago Bulls"); 
     values1.put("kratko_ime", "CHI"); 
     values1.put("kraj", "Chicago"); 
     baza5.insert("ekipe4", "kratko_ime", values1); 
     vibriraj(); 
    } 


    public void vpisi_ekipo(View view) 
    {  
     vibriraj(); 

     EditText novo_ime_ekipe = (EditText) findViewById (R.id.novo_ime_ekipe); 
     EditText novo_kratko_ime_ekipe = (EditText) findViewById (R.id.novo_kratko_ime_ekipe); 
     EditText novo_kraj_ekipe = (EditText) findViewById (R.id.novo_kraj_ekipe); 
     EditText novo_slika_ekipe = (EditText) findViewById (R.id.novo_slika_ekipe); 

     ContentValues values1 = new ContentValues(); 

     values1.put("ime_ekipe", (novo_ime_ekipe.getText()).toString()); 
     values1.put("kratko_ime", (novo_kratko_ime_ekipe.getText()).toString()); 
     values1.put("kraj", (novo_kraj_ekipe.getText()).toString()); 
     values1.put("slika", (novo_slika_ekipe.getText()).toString()); 
     baza5.insert("ekipe4", "kratko_ime", values1); 
     vibriraj(); 
     setContentView(R.layout.edit_teams);       
    } 
} 

現在我想要例如刪除我選擇的一行(從列表中獲取ID和從數據庫獲得相應的ID)或編輯一行。我該怎麼做呢?如果您知道數據庫中的ID,刪除或編輯SQLite條目非常容易,但我不知道。

對不起,我們的英語,你可以看到,這不是我的第一語言。

+0

你是什麼意思,「我不」?當你查詢數據庫並檢索一個條目時,該條目包含_id,不是嗎?使用該ID,可以刪除或更新數據庫中的行。 – Christine 2012-08-03 16:24:52

+0

我想從列表視圖中得到一個id,當我點擊一個項目.... – Gregor 2012-08-04 11:43:46

回答

0
ekipe_list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id){ 
      // your code here 
      } 
     }); 

在這裏「位置」你得到你點擊的項目的ID。 所以你只需要將ListView中的id轉換爲數據庫中的id。

否則,您將需要創建自定義適配器而不是SimpleCursorAdapter,並重寫getView()方法。

在你所提到的選擇查詢
+0

謝謝你的答案,它的工作原理,現在我可以得到listv的id行列。我怎樣才能得到數據庫表的ID?它們不一樣,當我刪除數據庫中的一行時,我刪除的那一行缺失。例如:0,1,2,4,5,6,7,9行..... – Gregor 2012-08-06 12:01:11

+1

Nevermind,我想出id,我只添加了onItemClick中的下一個代碼:TextView ime_ekipe =(TextView)view.findViewById (R.id.ime_ekipe); String s = ime_ekipe.getText()。toString(); searchtext.setText(s); – Gregor 2012-08-06 12:24:51

0

「SELECT * FROM答案在ID =」

但就不得不提到的「‘SELECT * FROM答案在ID’

由於表名是回答不回答

相關問題