آموزش ساخت لیست ویو سفارشی 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
تشکر همانند حرفی که دوستمون گفتن مثال جمع و جور و آموزنده ای بود./.
خدا قوت همین رو اگه میومدید و کامل باز میکردید هم بیشتر میتونست کمک کنه