MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.util.Base64;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.example.sqlite.Adapter.DisplayAdapter;
import com.example.sqlite.Bean.DisplayBean;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private Activity activity=MainActivity.this;
private TextView txt_upload;
private Button btn_submit;
private EditText ext_name,ext_city;
private ImageView img;
private int GALLERY=100;
private Sqliteopenhelper sqliteopenhelper;
Bitmap bitmap=null;
private RecyclerView rvdata;
private ArrayList<DisplayBean> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
Setlistner();
}
private void init()
{
txt_upload=(TextView)findViewById(R.id.txt_upload);
img=(ImageView)findViewById(R.id.img);
btn_submit=(Button) findViewById(R.id.btn_submit);
ext_name=(EditText) findViewById(R.id.ext_name);
ext_city=(EditText) findViewById(R.id.ext_city);
rvdata=(RecyclerView) findViewById(R.id.rvdata);
list=new ArrayList<>();
sqliteopenhelper=new Sqliteopenhelper(activity);
list=sqliteopenhelper.getdata();
rvdata.setLayoutManager(new LinearLayoutManager(activity));
rvdata.setAdapter(new DisplayAdapter(activity,list));
}
private void Setlistner()
{
txt_upload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent galleryIntent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(galleryIntent, GALLERY);
}
});
btn_submit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
sqliteopenhelper.InsertData(ext_name.getText().toString(),
ext_city.getText().toString(),
getEncoded64ImageStringFromBitmap(bitmap));
ext_name.setText("");
ext_city.setText(""); list=sqliteopenhelper.getdata();
rvdata.setLayoutManager(new LinearLayoutManager(activity));
rvdata.setAdapter(new DisplayAdapter(activity,list));
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == GALLERY && data!=null) {
Uri contentURI = data.getData();
try {
bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), contentURI);
Toast.makeText(MainActivity.this, "Image Saved!", Toast.LENGTH_SHORT).show();
img.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
Toast.makeText(MainActivity.this, "Failed!", Toast.LENGTH_SHORT).show();
}
}
}
public String getEncoded64ImageStringFromBitmap(Bitmap bitmap) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteFormat = stream.toByteArray();
String imgString = Base64.encodeToString(byteFormat, Base64.NO_WRAP);
return imgString;
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:orientation="vertical">
<EditText
android:id="@+id/ext_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter name"
android:textColor="@android:color/black"/>
<EditText
android:id="@+id/ext_city"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter city"
android:layout_marginTop="10dp"
android:textColor="@android:color/black"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginTop="10dp"
android:orientation="horizontal">
<TextView
android:id="@+id/txt_upload"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:padding="8dp"
android:background="@color/colorPrimary"
android:textColor="@android:color/white"
android:textStyle="bold"
android:textSize="15sp"
android:text="Upload"/>
<ImageView
android:id="@+id/img"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginLeft="20dp"
android:src="@drawable/ic_launcher_background"/>
</LinearLayout>
<Button
android:id="@+id/btn_submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Submit"
android:textAllCaps="false"
android:gravity="center"
android:layout_marginTop="20dp"
android:layout_gravity="center"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvdata"
android:layout_width="match_parent"
android:layout_height="match_parent"></androidx.recyclerview.widget.RecyclerView>
</LinearLayout>
</LinearLayout>
Sqliteopenhelper.java
package com.example.sqlite;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;
import androidx.core.content.ContextCompat;
import com.example.sqlite.Bean.DisplayBean;
import java.util.ArrayList;
public class Sqliteopenhelper extends SQLiteOpenHelper
{
private Context context;
private SQLiteDatabase db;
public Sqliteopenhelper(Context context) {
super(context, "Student.db", null, 1);
this.context=context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table IF NOT EXISTS student(s_id integer PRIMARY KEY AUTOINCREMENT ,s_name Text ,s_city Text,s_image Text)");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
public void InsertData(String name,String city,String Image)
{
db=getWritableDatabase();
ContentValues cv=new ContentValues();
cv.put("s_name",name);
cv.put("s_city",city);
cv.put("s_image",Image);
long d=db.insert("student",null,cv);
if(d!=-1)
{
Toast.makeText(context, "Recored Inserted", Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(context, "Recored not Inserted", Toast.LENGTH_SHORT).show();
}
}
public ArrayList<DisplayBean> getdata()
{
db=getReadableDatabase();
Cursor c=db.rawQuery("select * from student",null);
ArrayList<DisplayBean> listdata=new ArrayList<>();
if(c.moveToFirst())
{
do {
DisplayBean bean=new DisplayBean();
bean.setS_name(c.getString(c.getColumnIndex("s_name")));
bean.setS_city(c.getString(c.getColumnIndex("s_city")));
bean.setS_image(c.getString(c.getColumnIndex("s_image")));
listdata.add(bean);
}while (c.moveToNext());
}
return listdata;
}
}
DisplayBean.java
package com.example.sqlite.Bean;
public class DisplayBean
{
public String s_name,s_city,s_image;
public String getS_name() {
return s_name;
}
public void setS_name(String s_name) {
this.s_name = s_name;
}
public String getS_city() {
return s_city;
}
public void setS_city(String s_city) {
this.s_city = s_city;
}
public String getS_image() {
return s_image;
}
public void setS_image(String s_image) {
this.s_image = s_image;
}
}
DisplayAdapter.java
package com.example.sqlite.Adapter;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Base64;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.example.sqlite.Bean.DisplayBean;
import com.example.sqlite.R;
import java.util.ArrayList;
public class DisplayAdapter extends RecyclerView.Adapter<DisplayAdapter.MyViewholder>
{
private Context context;
private ArrayList<DisplayBean>list;
public DisplayAdapter(Activity activity, ArrayList<DisplayBean> list) {
this.context=activity;
this.list=list;
}
@NonNull
@Override
public MyViewholder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
{
View v= LayoutInflater.from(parent.getContext()).inflate(R.layout.item_data,parent,false);
return new MyViewholder(v);
}
@Override
public void onBindViewHolder(@NonNull MyViewholder holder, int position) {
DisplayBean bean=list.get(position);
holder.txt_nm.setText(bean.getS_name());
holder.txt_city.setText(bean.getS_city());
byte[] decodedString = Base64.decode(bean.getS_image(), Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
holder.img.setImageBitmap(decodedByte);
}
@Override
public int getItemCount() {
return list.size();
}
public class MyViewholder extends RecyclerView.ViewHolder
{
TextView txt_nm,txt_city;
private ImageView img;
public MyViewholder(@NonNull View itemView) {
super(itemView);
txt_nm=(TextView)itemView.findViewById(R.id.txt_nm);
txt_city=(TextView)itemView.findViewById(R.id.txt_city);
img=(ImageView)itemView.findViewById(R.id.img);
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_margin="10dp">
<ImageView
android:id="@+id/img"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/ic_launcher_background"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="15dp"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/txt_nm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="aaa"
android:textSize="17sp"/>
<TextView
android:id="@+id/txt_city"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="aaa"
android:textSize="17sp"/>
</LinearLayout>
</LinearLayout>
item_data.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_margin="10dp">
<ImageView
android:id="@+id/img"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/ic_launcher_background"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="15dp"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/txt_nm"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="aaa"
android:textSize="17sp"/>
<TextView
android:id="@+id/txt_city"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="aaa"
android:textSize="17sp"/>
</LinearLayout>
</LinearLayout>
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
No comments:
Post a Comment