2014-03-13 90 views
1

這是我使用eclipse構建的Android應用程序。 我有一個小問題,它是brojac的值不會更改爲5它保持初始化。 我不知道什麼是問題,甚至嘗試什麼。不管怎麼說,還是要謝謝你 !Sqllite數據庫讀取初始化

這裏是sql數據庫代碼:

package com.peky.smartornot; 

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

public class Sql { 
    public static final String KEY_ROWID= "_id"; 
    public static final String KEY_JOKERS= "joker"; 
    public static final String KEY_JOKERAMMOUNT= "ammount"; 

    private static final String DATABASE_NAME= "SQL"; 
    private static final String DATABASE_TABLE= "peoples_table"; 
    private static final int DATABASE_VERSION= 1; 

    private DbHelper ourHelper; 
    private final Context ourContext; 
    private SQLiteDatabase ourDatabase; 


    private static class DbHelper extends SQLiteOpenHelper{ 

     public DbHelper(Context context) { 
      super(context, DATABASE_NAME, null, DATABASE_VERSION); 
      // TODO Auto-generated constructor stub 
     } 

     @Override 
     public void onCreate(SQLiteDatabase db) { 
      // TODO Auto-generated method stub 
      db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + 
        KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
        KEY_JOKERS + " INTEGER, " + 
        KEY_JOKERAMMOUNT + " INTEGER);" 
        ); 

     } 

     @Override 
     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
      // TODO Auto-generated method stub 
      db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE); 
      onCreate(db); 
     } 

    } 

    public Sql(Context c){ 
     ourContext=c; 
    } 
    public Sql open(){ 
     ourHelper = new DbHelper(ourContext); 
     ourDatabase=ourHelper.getWritableDatabase(); 
     return this; 
    } 
    public void close(){ 
     ourHelper.close(); 
    } 
    public long spremi(int brojjokera, int kolicina) { 
     // TODO Auto-generated method stub 
     ContentValues cv = new ContentValues(); 
     cv.put(KEY_JOKERS, brojjokera); 
     cv.put(KEY_JOKERAMMOUNT, kolicina); 
     return ourDatabase.insert(DATABASE_TABLE, null, cv); 

    } 

    public int procitaj() { 
     // TODO Auto-generated method stub 
     String[] columns = new String[] { KEY_ROWID, KEY_JOKERS, 
       KEY_JOKERAMMOUNT }; 
     Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, 
       null, null); 
     int citac = 0; 
     int iJoker = c.getColumnIndex(KEY_JOKERS); 
     int iJokerammount = c.getColumnIndex(KEY_JOKERAMMOUNT); 
     for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) { 
      if (c.getInt(iJoker) == 1) 
       citac = c.getInt(iJokerammount); 
     } 
     return citac; 

    } 
} 

這裏是功能:

package com.peky.smartornot; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.View; 
import android.widget.EditText; 
import android.widget.TextView; 

public class Redeemcode extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_redeemcode); 
    } 

    public void provjeri(View view){ 
     EditText josip=(EditText)findViewById(R.id.test); 
     TextView proba=(TextView)findViewById(R.id.povrat); 
     String provjera=josip.toString(); 
     int kolicina=5,brojac=0; 
     int brojjokera=1; 
     Sql ulaz= new Sql(this); 
     if (provjera=="josip"){ 
      ulaz.open(); 
      ulaz.spremi(brojjokera, kolicina); 
      brojac= ulaz.procitaj(); 
      ulaz.close(); 

     } 
     proba.setText(""+brojac); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.redeemcode, menu); 
     return false; 
    } 

} 
+0

這哪裏是'brojac'更新comapre字符串? – Raghunandan

+0

在第二個代碼中,它以一個按鈕開始。 – user3402198

+0

我看到這個'brojac = 0'它的初始化爲零,然後你有'proba.setText(「」+ brojac);'所以它顯示0.你期望什麼? – Raghunandan

回答

2

brojac= ulaz.procitaj()不作爲if條件執行因爲你正在使用==可能失敗comapre字符串

你需要使用.equals

if (provjera.equals("josip")){ 
     ulaz.open(); 
     ulaz.spremi(brojjokera, kolicina); 
     brojac= ulaz.procitaj(); 
     proba.setText("Updated value is "+brojac); 
     ulaz.close(); 

}else 
{ 
     proba.setText("Old value is "+brojac); 
}