You are on page 1of 11

SharedPrefrences

Example 1
Set and Get Data In same Activity
SharedExample.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"
tools:context=".Shared">
<TextView
android:id="@+id/txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="10dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:textColor="#101010"
android:textSize="25sp"/>
<EditText
android:id="@+id/edt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="enter_a_text"
app:layout_constraintStart_toStartOf="parent"
android:layout_margin="10dp"
app:layout_constraintTop_toBottomOf="@+id/txt"
android:textColor="#101010"/>
<Button
android:id="@+id/save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="save"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/txt"
android:layout_margin="10dp"/>
<Button
android:id="@+id/show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="show"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/save"
android:layout_margin="10dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
SharedExample.kt
package com.example.sharedexample
import android.content.Context
import android.content.SharedPreferences
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import android.widget.Toast
class Shared : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_shared)
lateinit var shared : SharedPreferences
var save=findViewById<Button>(R.id.save)
var show=findViewById<Button>(R.id.show)
var edt=findViewById<EditText>(R.id.edt)
var txt=findViewById<TextView>(R.id.txt)
shared = getSharedPreferences("Test" , Context.MODE_PRIVATE)
save.setOnClickListener {
val edit = shared.edit()
edit.putString("txt" , edt.text.toString())
Toast.makeText(this , "Was Saved" , Toast.LENGTH_SHORT).show()
edit.apply()
}
show.setOnClickListener {
txt.text = shared.getString("txt" , "No imported" )
Toast.makeText(this , shared.getString("txt" , "No imported" )
, Toast.LENGTH_SHORT).show()
}
}
}

EXAMPLE-2
Set DATA FIRST ACTIVITY and Get Data In SECOND Activity

activity_main.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"
tools:context=".MainActivity">
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="130dp"
android:layout_marginTop="4dp"
android:src="@drawable/sinup"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/txtname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:text="First Name:"
android:textColor="@color/black"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="@id/image"
app:layout_constraintTop_toBottomOf="@id/image" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/etname"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:inputType="text"
app:layout_constraintStart_toStartOf="@id/txtname"
app:layout_constraintTop_toTopOf="@id/txtname"
android:hint="Enter Name"
android:textSize="12sp"
android:layout_marginTop="35dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtphone"
android:text="Phone Number:"
android:layout_marginStart="12dp"
android:textSize="15sp"
android:textColor="@color/black"
app:layout_constraintTop_toTopOf="@id/etname"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="70dp"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/etphone"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:inputType="phone"
android:hint="Enter Phone"
android:textSize="12sp"
app:layout_constraintStart_toStartOf="@id/txtphone"
app:layout_constraintTop_toTopOf="@id/txtphone"
android:layout_marginTop="35dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtmail"
android:text="Email:"
android:textColor="@color/black"
android:textSize="15sp"
android:layout_marginStart="12dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/etphone"
android:layout_marginTop="70dp"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/etmail"
android:inputType="textEmailAddress"
android:hint="Enter Email"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:textSize="12sp"
app:layout_constraintStart_toStartOf="@id/txtmail"
app:layout_constraintTop_toTopOf="@id/txtmail"
android:layout_marginTop="35dp"
/>
<TextView
android:id="@+id/txtpass"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="76dp"
android:text="Password:"
android:textColor="@color/black"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/etmail" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/etpass"
android:inputType="numberPassword"
android:hint="Enter Password"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:textSize="12sp"
app:layout_constraintStart_toStartOf="@id/txtpass"
app:layout_constraintTop_toTopOf="@id/txtpass"
android:layout_marginTop="35dp"/>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="140dp"
android:text="Sinup"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/etpass"
android:layout_marginTop="15dp"
/>
</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.kt
package com.example.sharedsinupexample
import android.content.Context
import android.content.Intent
import android.content.SharedPreferences
import android.os.Bundle
import android.text.TextUtils
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val sharedPrefFile="test"
var tname=findViewById<TextView>(R.id.txtname);
var tphone=findViewById<TextView>(R.id.txtphone);
var tEmail=findViewById<TextView>(R.id.txtmail);
var tpass=findViewById<TextView>(R.id.txtpass);
var et_name=findViewById<EditText>(R.id.etname);
var et_phone=findViewById<EditText>(R.id.etphone);
var et_pass=findViewById<EditText>(R.id.etpass);
var et_mail=findViewById<EditText>(R.id.etmail);
var btn_sinup=findViewById<Button>(R.id.btn);
btn_sinup.setOnClickListener {
val name = et_name.text.toString().trim { it <= ' ' }
val phone = et_phone.text.toString().trim { it <= ' ' }
val pass = et_pass.text.toString().trim { it <= ' ' }
val mail = et_mail.text.toString().trim { it <= ' ' }
if (TextUtils.isEmpty(name) || TextUtils.isEmpty(pass) ||
TextUtils.isEmpty(phone) || TextUtils.isEmpty(mail)) {
Toast.makeText(this@MainActivity, "Plese Enter All field",
Toast.LENGTH_LONG).show()
} else {
val sharedPreferences: SharedPreferences =
this.getSharedPreferences(sharedPrefFile, Context.MODE_PRIVATE)
val editor=sharedPreferences.edit()
editor.putString("Name",name)
editor.putString("Phone",phone)
editor.putString("Email",mail)
editor.putString("pass",pass)
editor.apply()
editor.commit()
val i = Intent(this@MainActivity, sinup::class.java)
startActivity(i)
Toast.makeText(this@MainActivity, "Registerd",
Toast.LENGTH_LONG).show()
}
}
}
}

activity_sinup.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"
tools:context=".sinup">
<TextView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="130dp"
android:layout_marginTop="4dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/txtname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:text="First Name:"
android:textColor="@color/black"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="@id/image"
app:layout_constraintTop_toBottomOf="@id/image" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtphone"
android:text="Phone Number:"
android:layout_marginStart="12dp"
android:textSize="15sp"
android:textColor="@color/black"
app:layout_constraintTop_toTopOf="@id/txtname"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="70dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtmail"
android:text="Email:"
android:textColor="@color/black"
android:textSize="15sp"
android:layout_marginStart="12dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/txtphone"
android:layout_marginTop="70dp" />
<TextView
android:id="@+id/txtpass"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="76dp"
android:text="Password:"
android:textColor="@color/black"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/txtmail" />
</androidx.constraintlayout.widget.ConstraintLayout>

sinup.kt
package com.example.sharedsinupexample
import android.content.Context
import android.content.SharedPreferences
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.TextView
class sinup : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_sinup)
val sharedPreferences: SharedPreferences =
this.getSharedPreferences("test", Context.MODE_PRIVATE)
val N=sharedPreferences.getString("Name","")
val P=sharedPreferences.getString("Phone","")
val E=sharedPreferences.getString("Email","")
val Pa=sharedPreferences.getString("pass","")
var txt=findViewById<TextView>(R.id.txtname)
txt.setText(N)
var txt1=findViewById<TextView>(R.id.txtphone)
txt1.setText(P)
var txt2=findViewById<TextView>(R.id.txtmail)
txt2.setText(E)
var txt3=findViewById<TextView>(R.id.txtpass)
txt3.setText(Pa)
}
}
RecyclerView & CardView

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg"
android:id="@+id/rec"
/>
</LinearLayout>

Studemt.kt
package com.example.recyclerviewexample
class Student(val image: Int, val text: String) {
}

list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
app:cardCornerRadius="15dp"
app:cardElevation="10dp"
android:layout_marginTop="10dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="5dp"
app:cardBackgroundColor="@color/teal_200"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">
<ImageView
android:layout_width="90dp"
android:layout_height="100dp"
android:id="@+id/img"
android:layout_marginLeft="10dp"
android:src="@drawable/ic_baseline_supervised_user_circle_24"/>
<TextView
android:id="@+id/txtname"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Name"
android:layout_gravity="center"
android:textSize="20sp"
/>
</androidx.cardview.widget.CardView>
CustomAdapter.kt
package com.example.recyclerviewexample
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
class CustomAdapter(private val
mlist:ArrayList<Student>):RecyclerView.Adapter<CustomAdapter.ViewHolder>(){
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):
CustomAdapter.ViewHolder {
var
view=LayoutInflater.from(parent.context).inflate(R.layout.list_item,parent,f
alse)
return ViewHolder(view)
}
override fun onBindViewHolder(holder: CustomAdapter.ViewHolder,
position: Int) {
val Student=mlist[position]
holder.imageView.setImageResource(Student.image)
holder.textView.text=Student.text
}
override fun getItemCount(): Int {
return mlist.size
}
class ViewHolder(ItemView: View):RecyclerView.ViewHolder(ItemView) {
val imageView: ImageView = itemView.findViewById(R.id.img)
val textView: TextView = itemView.findViewById(R.id.txtname)
}
}

MainActivity.kt
package com.example.recyclerviewexample
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var recycler=findViewById<RecyclerView>(R.id.rec)
lateinit var linearLayoutManager: LinearLayoutManager
linearLayoutManager = LinearLayoutManager(this)
recycler.layoutManager = linearLayoutManager
var data= ArrayList<Student>()
for (i in 1..10){
data.add(Student(R.drawable.car2,"Car"+i))
}
val adapter=CustomAdapter(data)
recycler.adapter=adapter
}
}
ViewPager
main_activty.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"
tools:context=".MainActivity">
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>

item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/ivSliderImage"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:scaleType="fitXY"/>
</LinearLayout>

ViewAdapter.kt
package com.example.viewpagerexample
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import androidx.recyclerview.widget.RecyclerView
class ViewAdapter(private val imagesList: List<Int>)
:RecyclerView.Adapter<ViewAdapter.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):
ViewHolder {
val view =

LayoutInflater.from(parent.context).inflate(R.layout.item_view_pager,
parent, false)
return ViewHolder(view)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val image = imagesList[position]
holder.bind(image)
}
override fun getItemCount(): Int {
return imagesList.size
}
class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
private val ivSliderImage =
itemView.findViewById<ImageView>(R.id.ivSliderImage)
fun bind(image: Int) {
ivSliderImage.setImageResource(image)
}
}
}

MainActivity.kt
package com.example.viewpagerexample
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.viewpager2.widget.ViewPager2
class MainActivity : AppCompatActivity() {
private lateinit var viewPager2: ViewPager2
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val imagesList = listOf(
R.drawable.one,
R.drawable.two,
// R.drawable.three
)
val adapter = ViewAdapter(imagesList)
var viewPager2 = findViewById<ViewPager2>(R.id.viewPager)
viewPager2.adapter = adapter
}
}

You might also like