Sunday, October 31, 2021

Insert Image and retrive image in recycle view

 Insert Data :- 

Xml Page:----------------


<?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"
tools:context=".Classwork">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/classsubject"
android:textStyle="bold"
android:layout_marginLeft="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="Subject"
android:textSize="20sp"/>
<EditText
android:id="@+id/classdate"
android:textStyle="bold"
android:layout_marginRight="20dp"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="Date"
android:textSize="20sp"/>

</RelativeLayout>
<View
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="#787676"/>
<EditText
android:id="@+id/classwrite"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Email Writting"
android:gravity="center"
android:textSize="20sp"
android:textStyle="bold"/>
<EditText
android:id="@+id/note"
android:layout_marginTop="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Dear student kindly go through the attach file"
android:textSize="15sp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="150dp"
android:id="@+id/classimage"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Classname"
android:id="@+id/enterclass"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Upload"
android:id="@+id/upload"/>
</LinearLayout>
</LinearLayout>

Java Page:-----------------

package com.niranjan.schooladmin;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import android.app.ProgressDialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;
import com.google.firebase.storage.UploadTask;

import java.sql.Ref;

public class Classwork extends AppCompatActivity {
TextView subject,date,heading,note,classname;
ImageButton imageView;
Button upload;
FirebaseDatabase mdatabase;
DatabaseReference mref;
FirebaseStorage mstorage;
private static final int Gallery_Code=1;
Uri imageurl = null;
ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_classwork);


mdatabase=FirebaseDatabase.getInstance();
mref=mdatabase.getReference().child("Classwork");
mstorage = FirebaseStorage.getInstance();


classname=findViewById(R.id.enterclass);
subject=findViewById(R.id.classsubject);
date=findViewById(R.id.classdate);
heading=findViewById(R.id.classwrite);
note=findViewById(R.id.note);
imageView=findViewById(R.id.classimage);
upload=findViewById(R.id.upload);
progressDialog=new ProgressDialog(this);


imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent,Gallery_Code);
}
});

}

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==Gallery_Code && resultCode==RESULT_OK)
{
imageurl=data.getData();
imageView.setImageURI(imageurl);
}
upload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String su=subject.getText().toString().trim();
String da=date.getText().toString().trim();
String he=heading.getText().toString().trim();
String no=note.getText().toString().trim();
String cl= classname.getText().toString().trim();
if (!(su.isEmpty() && da.isEmpty() && he.isEmpty() && no.isEmpty() && imageurl!=null))
{
progressDialog.setTitle("Uploading....");
progressDialog.show();
StorageReference filepath =mstorage.getReference().child("imagePost").child(imageurl.getLastPathSegment());
filepath.putFile(imageurl).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Task<Uri> downloadurl = taskSnapshot.getStorage().getDownloadUrl().addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
String t = task.getResult().toString();
DatabaseReference newPost = mref.push();
newPost.child("Date").setValue(da);
newPost.child("Subject").setValue(su);
newPost.child("Headind").setValue(he);
newPost.child("Note").setValue(no);
newPost.child("classname").setValue(cl);
newPost.child("image").setValue(task.getResult().toString());
progressDialog.dismiss();



}
});
}
});
}
}
});
}
}





Retrive Process:-


Xml:-


<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:padding="10dp"
tools:context=".Classwork">
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/classworkrec"/>
</androidx.constraintlayout.widget.ConstraintLayout>


Create Xml Page:----

<?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"
tools:context=".Classwork">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/classsubject"
android:textStyle="bold"
android:layout_marginLeft="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="Subject"
android:textSize="20sp"/>
<EditText
android:id="@+id/classdate"
android:textStyle="bold"
android:layout_marginRight="20dp"
android:layout_alignParentRight="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="Date"
android:textSize="20sp"/>

</RelativeLayout>
<View
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="2dp"
android:background="#787676"/>
<EditText
android:id="@+id/classwrite"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Email Writting"
android:gravity="center"
android:textSize="20sp"
android:textStyle="bold"/>
<EditText
android:id="@+id/note"
android:layout_marginTop="5dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Dear student kindly go through the attach file"
android:textSize="15sp"/>
<ImageButton
android:layout_width="match_parent"
android:layout_height="150dp"
android:id="@+id/classimage"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Classname"
android:id="@+id/enterclass"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Upload"
android:id="@+id/upload"/>
</LinearLayout>
</LinearLayout>


Model Class :---


package com.niranjan.createschoolapp.Model;

public class Classworkmodel {
String Date,Subject,Headind,Note,image,classname;

public Classworkmodel() {
}

public Classworkmodel(String date, String subject, String headind, String note, String image, String classname) {
Date = date;
Subject = subject;
Headind = headind;
Note = note;
this.image = image;
this.classname = classname;
}

public String getDate() {
return Date;
}

public void setDate(String date) {
Date = date;
}

public String getSubject() {
return Subject;
}

public void setSubject(String subject) {
Subject = subject;
}

public String getHeadind() {
return Headind;
}

public void setHeadind(String headind) {
Headind = headind;
}

public String getNote() {
return Note;
}

public void setNote(String note) {
Note = note;
}

public String getImage() {
return image;
}

public void setImage(String image) {
this.image = image;
}

public String getClassname() {
return classname;
}

public void setClassname(String classname) {
this.classname = classname;
}
}




Adapter Class :--

package com.niranjan.createschoolapp.Adapter;

import android.content.Context;
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.bumptech.glide.Glide;
import com.niranjan.createschoolapp.Model.Classworkmodel;
import com.niranjan.createschoolapp.R;
import com.squareup.picasso.Picasso;

import java.util.List;

public class Classworkadapter extends RecyclerView.Adapter<Classworkadapter.ViewHolder>{
private Context context;
private List<Classworkmodel> classworkmodelList;

public Classworkadapter(Context context, List<Classworkmodel> classworkmodelList) {
this.context = context;
this.classworkmodelList = classworkmodelList;
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new Classworkadapter.ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.classwork,parent,false));

}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
// Glide.with(context).load(classworkmodelList.get(position).getUrl()).into(holder.imageView);
holder.subject.setText(classworkmodelList.get(position).getSubject());
holder.date.setText(classworkmodelList.get(position).getDate());
holder.heading.setText(classworkmodelList.get(position).getHeadind());
holder.note.setText(classworkmodelList.get(position).getNote());
Classworkmodel classworkmodel = classworkmodelList.get(position);
String imageUri = null;
imageUri=classworkmodel.getImage();
Picasso.get().load(imageUri).into(holder.imageView);


}

@Override
public int getItemCount() {
return classworkmodelList.size();
}

public class ViewHolder extends RecyclerView.ViewHolder {
TextView subject,date,heading,note;
ImageView imageView;
public ViewHolder(@NonNull View itemView) {
super(itemView);
subject=itemView.findViewById(R.id.classworksubject);
date=itemView.findViewById(R.id.classdate);
heading=itemView.findViewById(R.id.classwrite);
note=itemView.findViewById(R.id.classnote);
imageView=itemView.findViewById(R.id.classworkimage);
}
}
}







Java File:-


package com.niranjan.createschoolapp;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.Toast;

import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnSuccessListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.firestore.CollectionReference;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.QueryDocumentSnapshot;
import com.google.firebase.firestore.QuerySnapshot;
import com.google.firebase.storage.FirebaseStorage;
import com.niranjan.createschoolapp.Adapter.Classworkadapter;
import com.niranjan.createschoolapp.Adapter.Homeworkadapter;
import com.niranjan.createschoolapp.Model.Classworkmodel;
import com.niranjan.createschoolapp.Model.Usermodel;

import java.util.ArrayList;
import java.util.List;

import static java.lang.String.valueOf;

public class Classwork extends AppCompatActivity {
//FirebaseFirestore firestore;
// FirebaseAuth auth;

FirebaseDatabase mdatabase;
DatabaseReference mref;
FirebaseStorage mstorage;


// FirebaseDatabase firebaseDatabase;
RecyclerView recyclerView;
List<Classworkmodel> classworkmodelList;
Classworkadapter classworkadapter;
// private SharedPreferences getShared;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_classwork);

// getShared = getSharedPreferences("classname",AppCompatActivity.MODE_PRIVATE);
// String className = getShared.getString("classname","");
// Toast.makeText(this, className, Toast.LENGTH_SHORT).show();

//firestore=FirebaseFirestore.getInstance();
//firebaseDatabase=FirebaseDatabase.getInstance();
// auth=FirebaseAuth.getInstance();

mdatabase=FirebaseDatabase.getInstance();
mref=mdatabase.getReference().child("Classwork");
mstorage = FirebaseStorage.getInstance();



recyclerView=findViewById(R.id.classworkrec);
recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext(),RecyclerView.VERTICAL,false));
classworkmodelList = new ArrayList<>();
classworkadapter= new Classworkadapter(getApplicationContext(),classworkmodelList);
recyclerView.setAdapter(classworkadapter);

mref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
Classworkmodel classworkmodel =snapshot.getValue(Classworkmodel.class);
classworkmodelList.add(classworkmodel);
classworkadapter.notifyDataSetChanged();
}

@Override
public void onChildChanged(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {

}

@Override
public void onChildRemoved(@NonNull DataSnapshot snapshot) {

}

@Override
public void onChildMoved(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {

}

@Override
public void onCancelled(@NonNull DatabaseError error) {

}
});


}
}








No comments:

Post a Comment

Activity Navigation One Activity to another Activity

Main Activity :-   <? xml version ="1.0" encoding ="utf-8" ?> < RelativeLayout xmlns: android ="http://sch...