2017-07-08 66 views
0

我在片段中使用数据库。然而,当我尝试初始化我的数据库使用行:我无法在Android中使用片段数据库

database=openOrCreateDatabase("firstdatabase",MODE_PRIVATE,null); 

它给了我一个错误说:

Error:(47, 55) error: cannot find symbol variable MODE_PRIVATE

这是我的代码:

public class Expenses extends Fragment{ 
@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
    View v=inflater.inflate(R.layout.expenses,container,false); 

    final SQLiteDatabase database; 
    Cursor c; 
    ArrayList<String> al=new ArrayList<>(); 

    ImageButton img=(ImageButton)v.findViewById(R.id.img); 
    final EditText commodity=(EditText)v.findViewById(R.id.commodity); 
    final EditText amount=(EditText)v.findViewById(R.id.amount); 
    ListView list=(ListView)v.findViewById(R.id.list); 

    Calendar calendar=Calendar.getInstance(); 
    final int day=calendar.get(Calendar.DAY_OF_MONTH); 
    final int month=calendar.get(Calendar.MONTH); 
    final int year=calendar.get(Calendar.YEAR); 

    registerForContextMenu(list); 
    database=openOrCreateDatabase("firstdatabase",MODE_PRIVATE,null); 

    img.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(getContext(), "Entered Successfully", Toast.LENGTH_SHORT).show(); 
      String c=commodity.getText().toString(); 
      int a=Integer.parseInt(amount.getText().toString()); 
      String q2="insert into expenses(day,month,year,commodity,amount)values('"+day+ "','" +month+ "','" +year+"','"+c+"','"+a+"');"; 
      database.execSQL(q2); 
     } 
    }); 

    String q1 = "select * from expenses"; 

    c = database.rawQuery(q1, null); 

    c.moveToFirst(); 
    do { 
     String comm = c.getString(c.getColumnIndex("commodity")); 
     String amo = c.getString(c.getColumnIndex("amount")); 

     al.add(comm + "\n" + amo); 
     ArrayAdapter ad = new ArrayAdapter(getContext(),android.R.layout.simple_list_item_1,al); 
     list.setAdapter(ad); 
    } 
    while (c.moveToNext()); 
    return v; 
} 
} 
+0

使用类.MODE_PRIVATE。 – Adithya

+0

@Adithya请告诉我它的完整代码行 –

回答

0

使用Context.MODE_PRIVATE

这应该工作。

database=getActivity().openOrCreateDatabase("firstdatabase",android.content.Context.MODE_PRIVATE ,null);

+0

无法正常工作...给出了另一个错误。错误:(51,56)错误:不兼容的类型:int无法转换为CursorFactory –

+0

更新了答案。一探究竟。 – Adithya

+0

仍然无法正常工作。错误说:错误:(51,61)错误:不兼容的类型:int不能转换为DatabaseErrorHandler –

相关问题