آموزش ساخت لیست ویو سفارشی 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>

 

دانلود سورس پروژه 

  1. AK47dev - 14 آگوست 2016

    مرسی .. مثال جمع جوری بود .. تشکر

  2. حسین - 2 مارس 2018

    کاش یه عکس هم از برنامه میذاشتین

  3. کاربر میهمان - 1 آوریل 2018

    تشکر همانند حرفی که دوستمون گفتن مثال جمع و جور و آموزنده ای بود./.
    خدا قوت همین رو اگه میومدید و کامل باز میکردید هم بیشتر میتونست کمک کنه


همینک دیدگاه خود را برای ما بنویسید!