2013-12-15 33 views
0

我無法打開數據庫。它不接受privateMode,...並且沒有任何模式它有錯誤。在BaseAdapter中打開sqlite getview

12-12 22:32:44.405: ERROR/AndroidRuntime(1112): FATAL EXCEPTION: main 
     android.database.sqlite.SQLiteException: unable to open database file 
     at android.database.sqlite.SQLiteDatabase.dbopen(Native Method) 
     at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1849) 
     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:820) 
     at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:854) 
     at com.example.easyshopping.CustomAdapterUpdate$1.onClick(CustomAdapterUpdate.java:73) 
     at android.view.View.performClick(View.java:2485) 
     at android.view.View$PerformClick.run(View.java:9080) 
     at android.os.Handler.handleCallback(Handler.java:587) 
     at android.os.Handler.dispatchMessage(Handler.java:92) 
     at android.os.Looper.loop(Looper.java:123) 
     at android.app.ActivityThread.main(ActivityThread.java:3683) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:507) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
     at dalvik.system.NativeStart.main(Native Method) 

CustomAdapterUpdate:

public class CustomAdapterUpdate extends BaseAdapter { 
    LayoutInflater mInlfater; 
    ArrayList<HashMap<String,String>> list; 
    public CustomAdapterUpdate(Context context,ArrayList<HashMap<String,String>> list) 
    { 
     mInlfater = LayoutInflater.from(context); 
     this.list =list; 
    } 
    @Override 
    public int getCount() { 
     // TODO Auto-generated method stub 
     return list.size(); 
    } 

    @Override 
    public Object getItem(int position) { 
     // TODO Auto-generated method stub 
     return position; 
    } 

    @Override 
    public long getItemId(int position) { 
     // TODO Auto-generated method stub 
     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     // TODO Auto-generated method stub 
     final ViewHolder holder; 
     if(convertView ==null) 
     { 
      convertView = mInlfater.inflate(R.layout.updateapprow,null); 
      holder = new ViewHolder(); 
      holder.b1 = (Button)convertView.findViewById(R.id.btnInsertToCart); 
      holder.tv1 = (EditText)convertView.findViewById(R.id.updateQty); 
      holder.tv2 = (TextView)convertView.findViewById(R.id.priceNewItem); 
      holder.tv3 = (TextView)convertView.findViewById(R.id.nameNewItem); 
      convertView.setTag(holder); 

     } 
     else 
     { 
      holder =(ViewHolder) convertView.getTag(); 
     } 
     HashMap<String,String> map = list.get(position); 

     holder.b1.setOnClickListener(new View.OnClickListener() 
     { 

      @Override 
      public void onClick(View v) { 

         SQLiteDatabase database = openOrCreateDatabase("ORCL",null); 
         database.execSQL("CREATE TABLE IF NOT EXISTS CART(id integer primary key autoincrement,title VARCHAR(150),qty INT(10),price INT(10));"); 
         database.execSQL("INSERT INTO CART(title,qty,price) VALUES('" + holder.tv3.getText().toString() + "'," + Integer.parseInt(holder.tv1.getText().toString())+"," 
           + Integer.parseInt(holder.tv2.getText().toString())+");"); 

         database.close(); 

      } 
     }); 
     return convertView; 
    } 
    static class ViewHolder 
    { 
     Button b1; 
     TextView tv2,tv3; 
     EditText tv1; 
    } 
} 

請幫我如何打開並插入新的數據。

回答

0

嘗試這樣..

數據庫= context.openOrCreateDatabase( 「數據庫名」,context.MODE_PRIVATE,NULL);

Context context; 

public CustomAdapterUpdate(Context context,ArrayList<HashMap<String,String>> list) 
    { 
this.context=context; 
     mInlfater = LayoutInflater.from(context); 
     this.list =list; 
    } 

感謝

+0

我不清楚你的消息.... –

+0

我沒有你所說的話,它因此未工作。它也不能接受MODE_PRIVATE – samira

+1

我是編輯代碼,請檢查它。 –

相關問題