2012-08-03 64 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’

由于表名是回答不回答

相关问题