close
تبلیغات در اینترنت
آموزش ساخت ListView,آموزش ساخت ListView با عکس,آموزش ساخت ListView شخص
صفحه اصلی پرشین استک

{ پرشین استک }

به دنیای برنامه نویسی خوش آمدید
|


پرشین استک تنها یک سایت نیست بلکه یک پروژه همگانی می باشد


تعداد مطالب :
142


تعداد توسعه دهندگان :
11


تاریخ امروز :
جمعه 01 تیر 1397

به کانال تلگرام ما بپیوندید


×

لیست سوالات من

افزودن

چگونه در برنامه نویسی اندروید ، یک ListView با متن و عکس بسازیم ؟

در این متن یاد می گیرید که چطور یک ListView شخصی سازی شده بسازید . محتوای این ListView شامل عکس و متن می باشد .

1. ابتدا در دایرکتوری res/layout یک فایل xml با نام list_single بسازید . سپس کد های زیر را در آن کپی کنید :

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TableRow>
<ImageView
android:id="@+id/img"
android:layout_width="50dp"
android:layout_height="50dp"/>

<TextView
android:id="@+id/txt"
android:layout_width="wrap_content"
android:layout_height="50dp" />

</TableRow>
</TableLayout>

 

توضیح کد های بالا :

در کد های بالا یک لایوت از نوع TableLayout به همراه TableRow ساخته شده است . در داخل این لایوت ها ، محتوای موجود در هر آیتم یا سطر از ListView مشخص می شوند . در اینجا یک ImageView برای نمایش تصویر هر آیتم و یک TextView برای نمایش متن هر آیتم استفاده می شود .

 

2. کد های زیر را در فایل activity_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:paddingBottom="2dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="2dp"
tools:context=".MainActivity" >

<ListView
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >

</ListView>

</RelativeLayout>

 

3. یک فایل جاوا با نام CustomList ایجاد کرده و کد های زیر را در آن قرار دهید :

importandroid.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[] web;
private final Integer[] imageId;
public CustomList(Activity context,
String[] web, Integer[] imageId) {
super(context, R.layout.list_single, web);
this.context = context;
this.web = web;
this.imageId = imageId;

}
@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView= inflater.inflate(R.layout.list_single, null, true);
TextView txtTitle = (TextView) rowView.findViewById(R.id.txt);

ImageView imageView = (ImageView) rowView.findViewById(R.id.img);
txtTitle.setText(web[position]);

imageView.setImageResource(imageId[position]);
return rowView;
}
}

 

توضیح کد های بالا :

در کد های پایین متد ()getView از کلاس ArrayAdapter بازنویسی شده است . در کد های پایین یک فایل xml برای هر کدام از آیتم های ListView مشخص شده است :

public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
View rowView= inflater.inflate(R.layout.list_single, null, true);

 

در کد های پایین شماره هر آیتم که در متغیر position ذخیره شده است . برای مقدار دهی به هر آیتم استفاده می شود . هر TextView و ImageView هر دو مقدار هایشان را با استفاده از متغیر position مشخص می کنند .

TextView txtTitle = (TextView) rowView.findViewById(R.id.txt);

ImageView imageView = (ImageView) rowView.findViewById(R.id.img);
txtTitle.setText(web[position]);

imageView.setImageResource(imageId[position]);

 

4. کد های زیر را در فایل MainActivity.java کپی کنید :

importandroid.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;
import android.app.Activity;

public class MainActivity extends Activity {
ListView list;
String[] web = {
"PERSIAN STACK",
"Twitter",
"Windows",
"Bing",
"Itunes",
"Wordpress",
"Drupal"
} ;
Integer[] imageId = {
R.drawable.image1,
R.drawable.image2,
R.drawable.image3,
R.drawable.image4,
R.drawable.image5,
R.drawable.image6,
R.drawable.image7

};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

CustomList adapter = new
CustomList(MainActivity.this, web, imageId);
list=(ListView)findViewById(R.id.list);
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(MainActivity.this, "شما روی " + web[position] + " کلیک کرده اید .", Toast.LENGTH_SHORT).show();

}
});

}

}

 

توضیح کد های بالا :

در کد های زیر ابتدا دو آرایه از نوع های رشته و عدد صحیح مشخص شده اند . آرایه رشته وظیفه نگهداری متون و آرایه عددی وطیفه نگهداری آیدی عکس ها را بر عهده دارد .

String[] web = {
"PERSIAN STACK",
"Twitter",
"Windows",
"Bing",
"Itunes",
"Wordpress",
"Drupal"
} ;
Integer[] imageId = {
R.drawable.image1,
R.drawable.image2,
R.drawable.image3,
R.drawable.image4,
R.drawable.image5,
R.drawable.image6,
R.drawable.image7

};

 

در کد زیر ابتدا یک شی از کلاسCustomList ساخته شده و سپس آرایه ها به عنوان پارامتر به متد سازنده این کلاس ارسال می شوند .

CustomList adapter = new
CustomList(MainActivity.this, web, imageId);

 

در کد های زیر ابتدا یک ListView ساخته شده و سپس شی ساخته شده از کلاس CustomList به عنوان شی Adapter به آن داده می شود .

list=(ListView)findViewById(R.id.list);
list.setAdapter(adapter);

 

در کد زیر از متد ()setOnItemClickListener برای کنترل رویداد کلیک مربوط به ListView استفاده شده است . در داخل این متد از Toast برای نمایش شماره مربوط به هر آیتم استفاده شده است :

list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(MainActivity.this, "شما روی " + web[position] + " کلیک کرده اید .", Toast.LENGTH_SHORT).show();

}
});

 

نکته : حتما عکس ها را در پوشه drawable قرار دهید و نام عکس ها را با نام های موجود در آرایه عددی برابر قرار دهید .

15

09 / 08 / 1396

PERSIAN STACK


چرا گاهی اوقات API موقعیت مکانی سرویس گوگل پلی ، موقعیت مکانی اشتباهی را برمی گرداند ؟

ادامه مطلب

591

چگونه نرم افزار ضبط صدای اندرویدی بسازیم ؟

ادامه مطلب

527

چرا TextView کلمات را با حروف می شکند ؟

ادامه مطلب

481

قسمت شانزدهم - جدول ها در HTML

ادامه مطلب

365

چرا وبسایت تجارت الکترونیک Magento 2 در Webview اندروید کار نمی کند ؟

ادامه مطلب

345

دانلود پروژه نمایش جستجوی کتاب برای اندروید

ادامه مطلب

323

چگونه Google API برای سطح API 25 را پیدا کنیم ؟

ادامه مطلب

317

دانلود سورس کد بازی اندرویدی Klooni 1010! + فایل APK

ادامه مطلب

235

آیا راهی برای یافتن تغیرات ماه در نمای تقویم اندروید (calendar view) وجود دارد ؟

ادامه مطلب

223

در تکمیل خودکار اندروید ، دلیل dispatchProvideAutofillStructure() not laid out چیست ؟

ادامه مطلب

219

چرا زمانی که با استفاده از cordova در اندروید 7.0 ، اس ام اس ارسال می کنیم ، با اثتثنای (Exception) امنیتی مواج

ادامه مطلب

215

دانلود تمامی API های اندروید

ادامه مطلب

205

دانلود تمامی نسخه های gradle برای اندروید

ادامه مطلب

177

آموزش ساخت و شخصی سازی Navigation Drawer در اندروید استودیو

ادامه مطلب

161

دانلود سورس کد اپلیکیشن هواشناسی برای اندروید + فایل APK

ادامه مطلب

157

چگونه ارور com.bumptech.glide.Registry$NoModelLoaderAvailableException: Failed to find any ModelLoaders را در اندروید رفع کنیم ؟

ادامه مطلب

151

دانلود اسکریپت جاوای PS-CH# - ایجاد ورودی متنی پیشرفته

ادامه مطلب

99

چگونه می توان با استفاده از CSS ، رنگ placeholder را تغییر داد ؟

ادامه مطلب

85

دانلود کتابخانه Retrofit برای اندروید + پروژه

ادامه مطلب

83

قسمت هفدهم - لیست ها در HTML

ادامه مطلب

83

دانلود اسکریپت جاوای PS-CH# - ایجاد ورودی متنی پیشرفته

ادامه مطلب

یکشنبه 05 آذر 1396

قسمت هفدهم - لیست ها در HTML

ادامه مطلب

یکشنبه 21 آبان 1396

چگونه می توان با استفاده از CSS ، رنگ placeholder را تغییر داد ؟

ادامه مطلب

یکشنبه 21 آبان 1396

قسمت شانزدهم - جدول ها در HTML

ادامه مطلب

شنبه 20 آبان 1396

دانلود تمامی نسخه های gradle برای اندروید

ادامه مطلب

شنبه 20 آبان 1396

قسمت پانزدهم - عکس ها در HTML

ادامه مطلب

جمعه 19 آبان 1396

قسمت چهاردهم - لینک ها در HTML

ادامه مطلب

یکشنبه 14 آبان 1396

آموزش ساخت و شخصی سازی Navigation Drawer در اندروید استودیو

ادامه مطلب

یکشنبه 14 آبان 1396

قسمت سیزدهم - CSS در HTML

ادامه مطلب

شنبه 13 آبان 1396

قسمت بیست و پنجم (قسمت آخر) - آموزش ساخت بازی حدس

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت بیست و چهارم - آموزش نحوه ی پردازش فایل ها در جاوا

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت بیست و سوم - برنامه تکمیلی جاوا (6)

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت بیست و دوم - معرفی آرایه ها در جاوا

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت بیست و یکم - برنامه تکمیلی جاوا (5)

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت بیستم - معرفی مفهوم وراثت در جاوا

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت نوزدهم - برنامه تکمیلی جاوا (4)

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت هجدهم - معرفی عبارات کنترلی در جاوا

ادامه مطلب

پنجشنبه 11 آبان 1396

قسمت هفدهم - برنامه تکمیلی جاوا (2-3)

ادامه مطلب

چهارشنبه 10 آبان 1396

چگونه در برنامه نویسی اندروید ، یک ListView با متن و عکس بسازیم ؟

ادامه مطلب

سه شنبه 09 آبان 1396

چگونه در برنامه نویسی اندروید از فونت شخصی خود استفاده کنیم ؟

ادامه مطلب

سه شنبه 09 آبان 1396

دانلود تمامی نسخه های gradle برای اندروید

ادامه مطلب

آموزش ساخت و شخصی سازی Navigation Drawer در اندروید استودیو

ادامه مطلب

چگونه در برنامه نویسی اندروید از فونت شخصی خود استفاده کنیم ؟

ادامه مطلب

چگونه در برنامه نویسی اندروید می توان آیدی موبایل را بدست آورد ؟

ادامه مطلب

چگونه در برنامه نویسی اندروید برنامه تماس بسازیم ؟

ادامه مطلب

چگونه در برنامه نویسی اندروید یک منو ساده بسازیم ؟

ادامه مطلب

چگونه در برنامه نویسی اندروید از برنامه اسکرین شات بگیریم ؟

ادامه مطلب

چگونه می توان در اندروید RTL یا LTR صفحه را ثابت کرد ؟

ادامه مطلب

چگونه می توان در اندروید حالت افقی (landscape) را غیر فعال کرد ؟

ادامه مطلب

آموزش استفاده از دیتابیس آماده در پروژه اندرویدی

ادامه مطلب

دانلود سورس کد تمامی نسخه های تلگرام + فایل های نصبی

ادامه مطلب

دانلود کتابخانه GSON برای اندروید + پروژه

ادامه مطلب

دانلود سورس کد اپلیکیشن آموزش زبان انگلیسی + فایل APK

ادامه مطلب

چگونه نگذاریم در آغاز اکتیویتی ، EditText فوکوس را بدست آورد ؟

ادامه مطلب

چگونه کیبورد پیش فرض اندروید (Soft Keyboard) را پنهان کرده یا ببندیم ؟

ادامه مطلب

چرا سرعت مجازی ساز اندروید کم است و چگونه می توان سرعت آنرا افزایش داد ؟

ادامه مطلب

تفاوت بین واحد های اندازه گیری "px" , "dp" , "dip" و "sp" چیست ؟

ادامه مطلب

دانلود سورس کد اپلیکیشن آهنگ سازی برای اندروید + فایل APK

ادامه مطلب

دانلود سورس کد اپلیکیشن هواشناسی برای اندروید + فایل APK

ادامه مطلب

دانلود سورس کد اپلیکیشن صداسنج برای اندروید + فایل APK

ادامه مطلب

× برای نظر گذاشتن یا پاسخ دادن به سوالات باید در سایت عضو باشید !

برای حمایت از ما روی بنر های زیر کلیک کنید .

برای سفارش تبلیغات به ما ایمیل بزنید .

ارتباط با ما