1-) Android RMOS - Listview Basit Kullanımı
Person.Java
public class Person {
public String ad;
public String soyad;
public String getAd() {
return ad;
}
public void setAd(String ad) {
this.ad = ad;
}
public String getSoyad() {
return soyad;
}
public void setSoyad(String soyad) {
this.soyad = soyad;
}
}
PersonAdapter.Java
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.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.zr.myapplication.MainActivity;
import com.zr.myapplication.R;
import java.util.List;
public class PersonAdapter extends ArrayAdapter<Person> {
private int resourceLayout;
private Context context;
IClickPerson iClickPerson;
List<Person> items;
public PersonAdapter(Context context, int resource, List<Person> items, IClickPerson iClickPerson) {
super(context, resource, items);
this.resourceLayout = resource;
this.context = context;
this.iClickPerson = iClickPerson;
this.items = items;
}
public void deleteFirstItem() {
if (items != null && items.size() > 0) {
items.remove(0);
notifyDataSetChanged();
}
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi;
vi = LayoutInflater.from(context);
v = vi.inflate(resourceLayout, null);
}
Person p = getItem(position);
if (p != null) {
TextView txtAd = v.findViewById(R.id.txtAd);
TextView txtSoyad = v.findViewById(R.id.txtSoyad);
ImageView imageViewProfil = v.findViewById(R.id.imageViewProfil);
ImageView imageViewSil = v.findViewById(R.id.imageViewSil);
LinearLayout linearLayout = v.findViewById(R.id.list_itemGenel);
imageViewProfil.setImageResource(getImage("resim1"));
txtAd.setText(p.ad);
txtSoyad.setText(p.soyad);
linearLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
iClickPerson.clickPerson(p);
}
});
imageViewProfil.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.mainActivity, "MERHABA", Toast.LENGTH_SHORT).show();
}
});
imageViewSil.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
remove(p);
//MainActivity.mainActivity.satirSil(p);
}
});
}
return v;
}
public int getImage(String StringGenerated) {
int id = context.getResources().getIdentifier("com.zr.myapplication:drawable/" + StringGenerated, null, null);
return id;
}
}
IClickPerson İNTERFACE
public interface IClickPerson {
public void clickPerson(Person person);
}
MainActivity.Java
package com.zr.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import com.zr.myapplication.Models.IClickPerson;
import com.zr.myapplication.Models.Person;
import com.zr.myapplication.Models.PersonAdapter;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
/*
Control + H (Bul ve Değiştir)-> Control + Shift + R
Control + F (Bul) -> Control + Sift + F
F8(Hataya Gider) -> F2
* */
Button btnEkle, btnGoster, btnSil;
CheckBox chkEkle;
public static MainActivity mainActivity;
RadioGroup rg1;
ListView listViewPerson;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mainActivity = this;
btnEkle = findViewById(R.id.btnEkle);
btnGoster = findViewById(R.id.btnGoster);
btnSil = findViewById(R.id.btnSil);
chkEkle = findViewById(R.id.chkEkle);
listViewPerson = findViewById(R.id.listViewPerson);
rg1 = findViewById(R.id.rg1);
btnEkle.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chkEkle.setChecked(true); //
}
});
btnSil.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
chkEkle.setChecked(false);
}
});
btnGoster.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Toast.makeText(mainActivity, ""+chkEkle.isChecked(), Toast.LENGTH_SHORT).show();
RadioButton radioButton = findViewById(rg1.getCheckedRadioButtonId());
if(radioButton!=null){
Toast.makeText(mainActivity, "" + radioButton.getText(), Toast.LENGTH_SHORT).show();
}
personAdapter.deleteFirstItem();
}
});
ArrayList<Person> personArrayList = new ArrayList<>();
for (int i = 0; i < 20; i++) {
Person person = new Person();
person.ad = "Z <3 R " + i;
person.soyad = "O <3 H " + (i + 10);
personArrayList.add(person);
}
personAdapter = new PersonAdapter(mainActivity, R.layout.listview1_item, personArrayList, new IClickPerson() {
@Override
public void clickPerson(Person person) {
Toast.makeText(mainActivity, ""+person.getAd() + chkEkle.isChecked(), Toast.LENGTH_SHORT).show();
}
});
listViewPerson.setAdapter(personAdapter);
}
public void satirSil(Person person){
personAdapter.remove(person);
//personAdapter.notifyDataSetChanged();
}
PersonAdapter personAdapter;
}
activity_main.xml
<?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=".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:orientation="horizontal"
android:weightSum="3">
<Button
android:id="@+id/btnEkle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button"
/>
<CheckBox
android:id="@+id/chkEkle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="CheckBox" />
<Button
android:id="@+id/btnSil"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button" />
</LinearLayout>
<Button
android:id="@+id/btnGoster"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button" />
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="RADİO GROUP"
android:textAlignment="center"
android:textColor="@color/black"
android:textSize="20dp" />
<RadioGroup
android:id="@+id/rg1"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RadioButton
android:id="@+id/rb1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checked="true"
android:text="RadioButton1" />
<RadioButton
android:id="@+id/rb2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="RadioButton2" />
<RadioButton
android:id="@+id/rb3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="RadioButton3" />
</RadioGroup>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="LİST VİEW"
android:textAlignment="center"
android:textColor="@color/black"
android:textSize="20dp" />
<ListView
android:id="@+id/listViewPerson"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</RelativeLayout>
listview1_item.xml
<?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">
<LinearLayout
android:id="@+id/list_itemGenel"
android:layout_width="match_parent"
android:layout_height="100dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="100"
>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="30"
android:orientation="vertical">
<ImageView
android:id="@+id/imageViewProfil"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:srcCompat="@tools:sample/avatars" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginStart="10dp"
android:layout_marginLeft="10dp"
android:layout_weight="50"
android:orientation="vertical"
android:weightSum="100">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="45"
android:orientation="vertical"
android:gravity="center"
>
<TextView
android:id="@+id/txtAd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="20dp"
android:textColor="@color/black"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="10"
android:orientation="vertical"></LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="45"
android:orientation="vertical"
android:gravity="center"
>
<TextView
android:id="@+id/txtSoyad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="20dp"
android:textColor="@color/black"
/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="20"
android:orientation="vertical"
android:gravity="center"
>
<ImageView
android:id="@+id/imageViewSil"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/delete_forever_24" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
kaynak : https://stackoverflow.com/questions/9229516/using-listview-in-android
Zeynep