Reputation: 1
.. I could not pass the image to the sqlitedatabase. I am trying to pass an image and retrieve it to recycleview
How to pass an image, in (model class)Do use (String) or (byte[]) for the image ،
And in myadapter inside the onbindviewholder use a glide library or not
Model class
public class model
{
String name,contact,email,location,data,image;
public model(String name, String contact, String email, String location, String data ,String image) {
this.name = name;
this.contact = contact;
this.email = email;
this.location = location;
this.data = data;
this.image = image;
}
...... Getter and setter
myadapter
public myadapter(ArrayList<model> dataholder,RecycleinterFace recycleinterFace) {
this.dataholder = dataholder;
this.recycleinterFace = recycleinterFace;
}
@NonNull
@Override
public myviewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view= LayoutInflater.from(parent.getContext()).inflate(R.layout.singlerow,parent,false);
return new myviewholder(view);
}
@SuppressLint("CheckResult")
@Override
public void onBindViewHolder(@NonNull myviewholder holder, int position) {
final model model = dataholder.get(position);
holder.dname.setText(dataholder.get(position).getName());
holder.dcontact.setText(dataholder.get(position).getContact());
holder.demail.setText(dataholder.get(position).getEmail());
holder.dlocation.setText(dataholder.get(position).getLocation());
holder.ddata.setText(dataholder.get(position).getData());
///Glide.with(holder.dname.getContext()).load(dataholder.get(position).getImage()).into(holder.dimage);
}
@Override
public int getItemCount() {
return dataholder.size();
}
class myviewholder extends RecyclerView.ViewHolder
{
TextView dname,dcontact,demail,dlocation,ddata;
ImageView dimage;
public myviewholder(@NonNull View itemView) {
super(itemView);
dname=(TextView)itemView.findViewById(R.id.displayname);
dcontact=(TextView)itemView.findViewById(R.id.displaycontact);
demail=(TextView)itemView.findViewById(R.id.displayemail);
dlocation=(TextView)itemView.findViewById(R.id.displaylocation);
ddata=(TextView)itemView.findViewById(R.id.displaydata);
dimage = (ImageView) itemView.findViewById(R.id.displayPicteres);
MainActivity
public class MainActivity extends AppCompatActivity{
// the activity result code
int SELECT_PICTURE = 200;
TextInputLayout name,contact,email,location,data ;
FloatingActionButton fb;
Button BSelectImage,sbmt;
ImageView imageView;
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
name = (TextInputLayout) findViewById(R.id.nametext);
contact = (TextInputLayout) findViewById(R.id.contacttext);
email = (TextInputLayout) findViewById(R.id.emailtext);
location = (TextInputLayout) findViewById(R.id.locationtext);
data = (TextInputLayout) findViewById(R.id.datatext);
imageView = findViewById(R.id.imgh);
BSelectImage = findViewById(R.id.selecetimg);
fb = (FloatingActionButton) findViewById(R.id.fbtn);
sbmt = (Button) findViewById(R.id.sbmt_add);
sbmt.setOnClickListener(v -> {
processinsert
(name.getEditText().getText().toString(),
contact.getEditText().getText().toString(),
email.getEditText().getText().toString(),
location.getEditText().getText().toString(),
data.getEditText().getText().toString());
});
fb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(getApplicationContext(), fetchdata.class);
startActivity(i);
}
});
BSelectImage.setOnClickListener(v -> {
img();
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
Uri selectedImageUri = data.getData();
if (null != selectedImageUri) {
imageView.setImageURI(selectedImageUri);
}
}
}
}
private void img() {
Intent i = new Intent();
i.setType("image/*");
i.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(i, "Select Picture"), SELECT_PICTURE);
}
@SuppressLint({"SetTextI18n", "CheckResult"})
private void processinsert(String n, String c, String e, String l, String d,String i)
{
String res=new dbmanager(this).addrecord(n,c,e,l,d,i);
name.getEditText().setText("");
contact.getEditText().setText("");
email.getEditText().setText("");
location.getEditText().setText("");
data.getEditText().setText("");
Toast.makeText(getApplicationContext(),res,Toast.LENGTH_SHORT).show();
}
Dbmanager
public class dbmanager extends SQLiteOpenHelper
{
private static final String dbname="dbcontact";
public dbmanager(@Nullable Context context) {
super(context, dbname, null, 12);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase)
{
String qry="create table tbl_contact ( id integer primary key autoincrement, name text," +
" contact text," +
" email text," +
"location text," +
"data text,"+
"image text)";
sqLiteDatabase.execSQL(qry);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i,int i1)
{
String qry="DROP TABLE IF EXISTS tbl_contact";
sqLiteDatabase.execSQL(qry);
onCreate(sqLiteDatabase);
}
public String addrecord(String name, String contact, String email, String location, String data ,String image)
{
SQLiteDatabase db=this.getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put("name",name);
cv.put("contact",contact);
cv.put("email",email);
cv.put("location",location);
cv.put("data",data);
cv.put("image",image);
float res=db.insert("tbl_contact",null,cv);
if(res==-1)
return "Failed";
else
return "Successfully inserted";
}
public Cursor readalldata()
{
SQLiteDatabase db=this.getWritableDatabase();
String qry="select * from tbl_contact order by id desc";
Cursor cursor=db.rawQuery(qry,null);
return cursor;
}
Fetchdata
public class fetchdata extends AppCompatActivity implements RecycleinterFace{
myadapter recycleadapter;
FloatingActionButton add;
RecyclerView recyclerView;
ArrayList<model> dataholder;
@SuppressLint({"MissingInflatedId"})
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fetchdata);
add = findViewById(R.id.floatingActionButton);
add.setOnClickListener(v ->{
Intent i = new Intent(getApplicationContext(), MainActivity.class);
startActivity(i);
});
recyclerView=(RecyclerView)findViewById(R.id.recview);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recycleadapter = new myadapter(dataholder,this);
Cursor cursor=new dbmanager(this).readalldata();
dataholder=new ArrayList<>();
while(cursor.moveToNext()) {
model obj=new model(cursor.getString(1),
cursor.getString(2),
cursor.getString(3),
cursor.getString(4),
cursor.getString(5),
cursor.getString(6));
dataholder.add(obj);
}
myadapter adapter=new myadapter(dataholder,this);
recyclerView.setAdapter(adapter);
recycleadapter.notifyDataSetChanged();
}
Upvotes: 0
Views: 16