آموزش ساخت لیست ویو سفارشی Custom listView Android
سوال : جهت نمایش اخبار سایت در اپلیکیشن از لیست ویو استفاده کرده ام . حالا میخوام این لیست ویو رو مقداری دستکاری کنم و چند سطرش بکنم . اگر امکانش هست یک آموزش مختصری قرار بدهید .
پاسخ : مثال ساده ای رو برای رو اماده کرده ایم که در پایین میتوانید مشاهده کنید :
فایل Main.java :
package co.tooba.lazy_loading;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
public class Main extends Activity {
private ListView list ;
private String[] name = {"Android","Android Ui","Java", "Php", "Sqllite","Html","c#"};
private String[] gen = {"female","Android female","female", "Php", "female","female","c#"};
private Integer[] img = {R.drawable.ic_launcher , R.drawable.ic_launcher , R.drawable.ic_launcher , R.drawable.ic_launcher , R.drawable.ic_launcher , R.drawable.ic_launcher, R.drawable.ic_launcher};
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
CustomList adapter = new CustomList(Main.this, name, gen, img);
list = (ListView)findViewById(R.id.list);
list.setAdapter(adapter);
}
}
فایل main.xml :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
tools:context="co.tooba.lazy_loading.Main" >
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</RelativeLayout>
فایل CustomList.java :
package co.tooba.lazy_loading;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class CustomList extends ArrayAdapter<String> {
private final Activity context;
private final String[] name;
private final String[] gen ;
private final Integer[] img ;
public CustomList(Activity context, String[] name , String[] gen , Integer[] img) {
super(context, R.layout.custom_list, name);
this.context = context;
this.name = name ;
this.gen = gen ;
this.img = img ;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater infalter = context.getLayoutInflater();
View v = infalter.inflate(R.layout.custom_list , null , true);
TextView txtName = (TextView) v.findViewById(R.id.name);
TextView txtGen = (TextView) v.findViewById(R.id.gen);
ImageView image = (ImageView) v.findViewById(R.id.imageView1);
txtName.setText(name[position]);
txtGen.setText(gen[position]);
image.setImageResource(img[position]);
return v ;
}
}
فایل custom_list.xml :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/gen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="22dp"
android:layout_marginTop="41dp"
android:text="name"
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/gen"
android:layout_alignParentTop="true"
android:layout_marginTop="16dp"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/name"
android:layout_marginRight="14dp"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
-
AK47dev - 14 آگوست 2016
مرسی .. مثال جمع جوری بود .. تشکر
-
حسین - 2 مارس 2018
کاش یه عکس هم از برنامه میذاشتین
-
کاربر میهمان - 1 آوریل 2018
تشکر همانند حرفی که دوستمون گفتن مثال جمع و جور و آموزنده ای بود./.
خدا قوت همین رو اگه میومدید و کامل باز میکردید هم بیشتر میتونست کمک کنه