من طبق یه آموزش ساخت ریساکلرویو با دیتابیس آماده پروژه ای رو ساختم اما مشکل در INSERT کردن آیتم های لیست به جدول علاقه ها هست که ارور نداره اما اضافه نمیشود کد های کامل بدین شرح میباشد:
public class Item {
int id;
String dis;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getdis() {
return dis;
}
public void setHadism(String dis) {
this.dis = dis;
}
}
کدهایSetViewHolder :
public class SetViewHolder extends RecyclerView.ViewHolder {
public TextView txt_h;
public Button button2;
public Button button3;
private Cursor cursor;
private DatabaseHelper databaseHelper;
public SetViewHolder(final View itemView) {
super(itemView);
txt_h=(TextView)itemView.findViewById(R.id.txt_word);
button2=(Button)itemView.findViewById(R.id.button2);
button3= (Button) itemView.findViewById(R.id.button3);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
databaseHelper=new DatabaseHelper(itemView.getContext());
databaseHelper.openDatabase();
databaseHelper.getReadableDatabase();
databaseHelper.QueryData("INSERT INTO fav(dis) VALUES('"+txt_h.getText()+"')");
databaseHelper.close();
// cursor=databaseHelper.QueryData("INSERT INTO fav(dis) VALUES('"+txt_h.getText()+"')");
// cursor.getString(1);
}
});
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT,txt_h.getText().toString());
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "jj");
v.getContext().startActivity(Intent.createChooser(shareIntent, "Share ..."));
}
});
}
}
کدهای Adapter:
public class VocabularyAdapter extends RecyclerView.Adapter<SetViewHolder> {
private Activity activity;
List<Item> items= Collections.emptyList();
public VocabularyAdapter(Activity activity, List<Item> items){
this.activity=activity;
this.items=items;
}
@Override
public SetViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.list_item,parent,false);
return new SetViewHolder(view);
}
@Override
public void onBindViewHolder(SetViewHolder holder, final int position) {
holder.txt_h.setText(items.get(position).getdis());
}
@Override
public int getItemCount() {
return items.size();
}
}
سوال
t0p 2
باسلام خدمت اساتید سایت
من طبق یه آموزش ساخت ریساکلرویو با دیتابیس آماده پروژه ای رو ساختم اما مشکل در INSERT کردن آیتم های لیست به جدول علاقه ها هست که ارور نداره اما اضافه نمیشود کد های کامل بدین شرح میباشد:
ممنون کمک کنید و حل بشه
DatabaseHelper.java:
public class DatabaseHelper extends SQLiteOpenHelper { private static String DB_NAME= "Data.db"; private static String DB_PATH=""; private SQLiteDatabase myDatabase; private Context myContext; public DatabaseHelper(Context context) { super(context, DB_NAME, null, 1); if(Build.VERSION.SDK_INT>=15) { DB_PATH = context.getApplicationInfo().dataDir + "/databases/"; } else{ DB_PATH= Environment.getDataDirectory() + "/data/" + context.getPackageName() + "/databases/"; } this.myContext=context; } @Override public void onCreate(SQLiteDatabase db) { } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String sql="database already exist"; db.execSQL(sql); } public void checkAndCopyDatabase(){ boolean dbExist=checkDatabase(); if (dbExist){ Log.d("TAG","database already exist"); } else {this.getReadableDatabase();} try { copyDatabase(); } catch (IOException e) { e.printStackTrace(); Log.d("TAG","Error copy database"); } } public boolean checkDatabase(){ SQLiteDatabase checkDB=null; try { String myPath=DB_PATH+DB_NAME; checkDB=SQLiteDatabase.openDatabase(myPath,null,SQLiteDatabase.OPEN_READWRITE); }catch (SQLiteException e){} if(checkDB !=null){ checkDB.close(); } return checkDB !=null ? true : false; } public void copyDatabase()throws IOException{ InputStream myInput=myContext.getAssets().open(DB_NAME); String outFileName=DB_PATH + DB_NAME; OutputStream myOutput=new FileOutputStream(outFileName); byte[] buffer=new byte[1024]; int length; while ((length = myInput.read(buffer)) > 0){ myOutput.write(buffer, 0,length); } myOutput.flush(); myOutput.close(); myInput.close(); } public void openDatabase(){ String myPath=DB_PATH + DB_NAME; myDatabase=SQLiteDatabase.openDatabase(myPath,null,SQLiteDatabase.OPEN_READWRITE); } public synchronized void close(){ if (myDatabase !=null){ myDatabase.close(); } super.close(); } public Cursor QueryData(String query){ return myDatabase.rawQuery(query,null); } }
Item ها:
public class Item { int id; String dis; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getdis() { return dis; } public void setHadism(String dis) { this.dis = dis; } }
کدهایSetViewHolder :
public class SetViewHolder extends RecyclerView.ViewHolder { public TextView txt_h; public Button button2; public Button button3; private Cursor cursor; private DatabaseHelper databaseHelper; public SetViewHolder(final View itemView) { super(itemView); txt_h=(TextView)itemView.findViewById(R.id.txt_word); button2=(Button)itemView.findViewById(R.id.button2); button3= (Button) itemView.findViewById(R.id.button3); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { databaseHelper=new DatabaseHelper(itemView.getContext()); databaseHelper.openDatabase(); databaseHelper.getReadableDatabase(); databaseHelper.QueryData("INSERT INTO fav(dis) VALUES('"+txt_h.getText()+"')"); databaseHelper.close(); // cursor=databaseHelper.QueryData("INSERT INTO fav(dis) VALUES('"+txt_h.getText()+"')"); // cursor.getString(1); } }); button3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setType("text/plain"); shareIntent.putExtra(Intent.EXTRA_TEXT,txt_h.getText().toString()); shareIntent.putExtra(Intent.EXTRA_SUBJECT, "jj"); v.getContext().startActivity(Intent.createChooser(shareIntent, "Share ...")); } }); } }
کدهای Adapter:
کدهای اکتویتی اصلی :
کد نمایش لیست علاقه ها هم کپی اکتیویتی اصلی هست .
مشکل در کد INSERT (در SetViewHolder) میباشد که آیتم به جدول علاقه مندی ها اضافه نمیشود دو کد رو تست کردم اما درست نشد:
button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { databaseHelper=new DatabaseHelper(itemView.getContext()); databaseHelper.openDatabase(); databaseHelper.getReadableDatabase(); databaseHelper.QueryData("INSERT INTO fav(dis) VALUES('"+txt_h.getText()+"')"); databaseHelper.close(); // cursor=databaseHelper.QueryData("INSERT INTO fav(dis) VALUES('"+txt_h.getText()+"')"); // cursor.getString(1); } });
لینک ارسال
به اشتراک گذاری در سایت های دیگر
0 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.