لیست ویو ، اما با سورسی ساده و آسون تر !
دوستان راستش من ، طرز کاره آموزش لیست ویو رو نفهمیدم ، خوب دارم سعی میکنم بفهمم اما یه روش دیگه هم به ذهنم رسید ، گفتم شاید برای شما هم جالب باشه :)
طرز کاره پروژه :
در یک حلقه ی For در زمان اجرا یک دکمه و یک تکست ویو ایجاد میشود ، یعنی شی در زمان اجرا ، به تعداد نیاز ساخته میشه و به یک اسکرول ویو اضافه میشه
یعنی ما کار رو خودمون دستی انجام میدیم ، به تعدادی که نیاز داریم زمان اجرا شی ایجاد میکنیم و توی یک اسکرول ویو میزاریمش !
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final LinearLayout lnr = (LinearLayout) findViewById(R.id.linear1);
for (int i = 1; i < 20; i++)
{
final TextView txt1 = new TextView(this);
txt1.setText("آیتم شماره" + i);
txt1.setTag("" + i);
txt1.setBackgroundResource(R.drawable.txt_style);
lnr.addView(txt1);
txt1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(RotateActivity.this, ActivityShow.class);
intent.putExtra("id", "" + txt1.getTag());
RotateActivity.this.startActivity(intent);
}
});
//---------------------------------------
Button btndelete = new Button(this);
btndelete.setText("حذف");
btndelete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
lnr.removeView(txt1);
lnr.removeView(v);
}
});
lnr.addView(btndelete);
}
}
اگه شما هم روش ساده تری برای ساخت LISTVIEW بلدید ، بگید استفاده کنیم ! :)
البته روشت یه خوبی داره و یه بدی
بدیش اینکه همه تنظیمات view ها رو باید با کد انجام بدیم ( margin , color , size ,...)
خوبیش اینکه (البته خوبی نسبت به روشی که میخواد در ادامه بگم) هر چیزی بخوایم میتونیم اضافه کنیم
اما یه راهی که به گمونم چقدر پبش یکی از بچه ها هم لینک گذاشته بود اینجوری بود (البته هر عضو این لیست فقط شامل یه text خالیه) :
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final String[] name = new String[]{ "item1", "item2", "item3", "item4", "item5" };
ListView mylist = (ListView) findViewById(R.id.lv_name);
mylist.setAdapter(new ArrayAdapter<String>(ActivityMain.this, android.R.layout.simple_list_item_1, name));
mylist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
Toast.makeText(getApplicationContext(), "value : " + name[position] + " in position :" + position + " clicked !", Toast.LENGTH_SHORT).show();
}
});
}
شما فرض کنید که می خواید لیست Contact های گوشی رو Load کنید و توی یک لیست نشون بدید، روش شما گوشی رو می ترکونه. روش باید از نظر Memory بهینه باشه که ListView هست.
توجه داشته باشید که ListView یکی از قسمت های گیج کننده اندروید هست اما چرا؟ چون قبلاً در هیچ Framework ـی چنین روشی مطرح نشده بود و همیشه همه جا، مشکل این بود که چجوری یک لیست با قیافه دلخواه و Optimize شده رو نشون بدیم، که برای اولین بار با کمترین Foot Print در اندروید معرفی شد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .