Membuat Daftar View User dengan Android Studio
Disini kita akan coba membuat
daftar user view
dengan Android Studio, adapun langka-langkah yang dapat di ikuti sebagai
berikut :
- Membuat
Project Baru di Android Studio Klik FIle-> New-> New Project. Lalu Pilih
Empty Activity dan klik Next
- 2.
Setelah
itu kita masuk pada bagian pengisian Name Project dan Bahasa yang akan di pakai,
disini saya mengunakan nama project sebgai ListView dan Bahasa Java, lalu klik Finish
3.
Dan
setelah membuat new project maka tampil awal yang akan kita temukan adalah Hello
World seprti gambar berikut ini :
- 4.
Berikut
kita akan mengubah coding Hello World menjadi speri gambar di bahwa ini:
Masukan
coding ini pada project kalian
Setelah
kita mengetikan coding diatas ini, maka ada error pada tools:listitem="@layout/list_item",
mengapa karena kita belum membuat Layout/List_item nya. Dan itu kita akan
membuat nya dengan cara sebagai berikut
- 5.
Kita
Klik Pada Project dan Pilih folder res->layout dan klik kanan -> Pilih Layout
Resource File, maka akan muncul Pop Up dan isilah dengan contoh seperti gambar
di bhwa ini :
Dan Klik Ok, maka akan muncul layout baru dengan nama list_item,mengapa kita membuat layout list_item ini karena ini akan mengatasi error yang terjadi dan ini kita gunakan untuk membuat list user nya.
Dan
inilah list_item yang baru kita buatkan.
- 6.
Sekarang
kita masukan Coding pada list_item nya seperti gambar di bahwa ini :
7. <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="10dp"
android:orientation="horizontal">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/profile_pic"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_marginStart="20dp"
android:src="@drawable/pro"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:orientation="vertical">
<TextView
android:id="@+id/personName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Johan Nasendi"
android:textColor="@color/black"
android:textSize="26sp"
android:textStyle="bold"/>
<TextView
android:id="@+id/lastMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="Hi, How Are you"/>
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/msgtime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"
android:layout_alignParentRight="true"
android:text="8:35 pm"/>
</RelativeLayout>
</LinearLayout>
Adapun
Error yang akan kita dapatkan jiak copas “hehhhe wkwk” mengapa ada error ? k
Petama
ada pada <de.hdodenhof.circleimageview.CircleImageView.
Kedua
ada pada android:src="@drawable/pro"/>
Bagaiman
cara nya ?
Error pertama;
dengan cara menambahkan
implementation
'de.hdodenhof:circleimageview:3.1.0' di
Gradle Script -> build.gradle -> lalu klik Sycn Now
mengapa menambahkan
coding di atas karena kita akan membuat image profile kita menjadi circle untuk
itu kita perlu mengimplementasikan dulu.
Error Kedua :
dengan cara menambahkan foto kalian ke folder res->drawable
Selesai untuk 2
error ini, dan liat hasil nya !
- 8.
Berikut
ini kita akan membuat Detail User XML, disini saya akan membuat dengan nama
file activity_user.xml, teman” dapat membuat sesuai dengan kemauan teman-teman
nama file nya, cara nya sama sperti tadi kita membuat list_item pada step ke 5
tadi. Setelah membuat nya kita masukan coding nya sebagai berikut :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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=".UserActivity">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/profile_image"
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_centerHorizontal="true"
android:src="@drawable/facebook_avatar"
android:layout_marginTop="20dp"/>
<TextView
android:id="@+id/scode_profile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_below="@+id/profile_image"
android:layout_marginTop="10dp"
android:textColor="@color/black"
android:text="" />
<RelativeLayout
android:id="@+id/relative_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground"
android:layout_below="@+id/scode_profile"
android:paddingVertical="10dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginStart="70dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name"
android:textSize="12sp"/>
<TextView
android:id="@+id/name_profile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Johan Nasendi"
android:textSize="26sp"
android:textColor="@color/black"/>
</LinearLayout>
</RelativeLayout>
<RelativeLayout
android:id="@+id/relative_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/relative_name"
android:paddingVertical="10dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginStart="70dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Phone"
android:textSize="12sp"/>
<TextView
android:id="@+id/phone_profile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+91-999999999"
android:textSize="26sp"
android:textColor="@color/black"/>
</LinearLayout>
</RelativeLayout>
<View
android:layout_below="@+id/relative_phone"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/underline"/>
<View
android:layout_below="@+id/relative_name"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/underline"/>
<RelativeLayout
android:id="@+id/relative_house_no"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="true"
android:background="?attr/selectableItemBackground"
android:layout_below="@id/relative_phone"
android:paddingVertical="10dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginStart="70dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Country"
android:textSize="12sp"/>
<TextView
android:id="@+id/country_profile"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ID"
android:textSize="26sp"
android:textColor="@color/black"/>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
Dan
disni ada terdapat 3 Error yang akan teman” temui
1)
tools:context=".UserActivity"> Mengapa error karena kita harus membuat dulu class java nya
dengan UserActivity , tetapi itu
kita akan buat pada tahap berikut jadi
biarkan saja dulu.
2)
android:src="@drawable/facebook_avatar"
disini karen kita
belum mengimport foto file di drawable kita untuk kita perlu mengimport contoh
seperti telah kita buat pada langke ke 7 tadi.
3)
android:background="@color/underline"/>
pada error ini kita
perlu mendeklarasikan dulu color yang akan kita gunakan cara nya : pergi ke
Folder App->Res->Value->Color.xml klik dan masukan coding sebagai
berikut : <color name="underline">#D8D6D6</color>
Success
untuk Tahap ke 8 bagian error nya.
- 9.
Berikut
nya kita akan buat UserActivity untuk mengatasi
error di atas,dengan cara sebagai berikut: Masuk ke Folder App->Java->com.example.listview ->
klik kanan pilih New JavaClass.
package com.example.listview;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import com.example.listview.databinding.ActivityMainBinding;
import com.example.listview.databinding.ActivityUserBinding;
public class UserActivity extends AppCompatActivity {
ActivityUserBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityUserBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
Intent intent = this.getIntent();
if (intent != null){
String name = intent.getStringExtra("name");
String phone = intent.getStringExtra("phone");
String country = intent.getStringExtra("country");
int imageid = intent.getIntExtra("imageid",R.drawable.a);
binding.nameProfile.setText(name);
binding.phoneProfile.setText(phone);
binding.countryProfile.setText(country);
binding.profileImage.setImageResource(imageid);
}
}
}
- Dan selanjud nya kita membuat User.java denga cara yang sama seperti kita membuat UserActivity.java, setelah terbuat maka kita masukan coding sebagai berikitut :
package com.example.listview;
public class User {
String name, lastMessage, lastMsgTime, phoneNo, country;
int imageId;
public User(String name, String lastMessage, String lastMsgTime, String phoneNo, String country, int imageId) {
this.name = name;
this.lastMessage = lastMessage;
this.lastMsgTime = lastMsgTime;
this.phoneNo = phoneNo;
this.country = country;
this.imageId = imageId;
}
}
- 11. Dan kita akan membuat lagi adapter
dengan nama ListAdapter.java. ap aitu adapter? Teman dapat menbaca disini https://developer.android.com/guide/topics/ui/binding
Dan
masukan coding sebagai berikut :
package com.example.listview;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.w3c.dom.Text;
import java.util.ArrayList;
public class ListAdapter extends ArrayAdapter<User> {
public ListAdapter(Context context, ArrayList<User> userArrayList){
super(context,R.layout.list_item,userArrayList);
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
User user = getItem(position);
if (convertView == null){
convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item,parent,false);
}
ImageView imageView = convertView.findViewById(R.id.profile_pic);
TextView userName = convertView.findViewById(R.id.personName);
TextView lastMsg = convertView.findViewById(R.id.lastMessage);
TextView time = convertView.findViewById(R.id.msgtime);
imageView.setImageResource(user.imageId);
userName.setText(user.name);
lastMsg.setText(user.lastMessage);
time.setText(user.lastMsgTime);
return convertView;
}
}
- 12. Horee kita sudah Hampir selesai,
sekarang tinggal masukan coding pada MainActivity.Java nya, dengan coding sebagai
berikut :
package com.example.listview;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import com.example.listview.databinding.ActivityMainBinding;
import com.example.listview.databinding.ActivityUserBinding;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
ActivityMainBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
int[] imageId = {R.drawable.a,R.drawable.b,R.drawable.c,R.drawable.d,R.drawable.e,
R.drawable.f,R.drawable.g,R.drawable.h,R.drawable.i};
String[] name = {"Nurinun","Johan Nasendi","Gusti","Jerry Bella","Haidir Ali","I Komang","Chrismawaty","M.Yusuf","Sujiono"};
String[] lastMessage = {"1911148","1911182","1911130","1911147","1911132",
"1911172","1911149","1911135","1911070"};
String[] lastmsgTime = {"8:45 pm","9:00 am","7:34 pm","6:32 am","5:76 am",
"5:00 am","7:34 pm","2:32 am","7:76 am"};
String[] phoneNo = {"7656610000","9999043232","7834354323","9876543211","5434432343",
"9439043232","7534354323","6545543211","7654432343"};
String[] country = {"Indonesia","Indonesia","Indonesia","Indonesia","Indonesia","Indonesia","Indonesia","Indonesia","Indonesia"};
ArrayList<User> userArrayList = new ArrayList<>();
for(int i = 0;i< imageId.length;i++){
User user = new User(name[i],lastMessage[i],lastmsgTime[i],phoneNo[i],country[i],imageId[i]);
userArrayList.add(user);
}
ListAdapter listAdapter = new ListAdapter(MainActivity.this,userArrayList);
binding.listview.setAdapter(listAdapter);
binding.listview.setClickable(true);
binding.listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent i = new Intent(MainActivity.this,UserActivity.class);
i.putExtra("name",name[position]);
i.putExtra("phone",phoneNo[position]);
i.putExtra("country",country[position]);
i.putExtra("imageid",imageId[position]);
startActivity(i);
}
});
}
}
Selamat Mencoba,Semoga Berhasil
Jika ada yang kurang jelas,Silakan Bertanya di kolom Komentar
Comments
Post a Comment