سلام.
برای عنصر CheckBox یا هر عنصر دلخواه دیگر که قصد داریم در تمامی item های ListView نمایش داده شوند :
1- فایل XML متناظر با لایه گرافیکی برای هر item (ردیف - row) را باز کنید و تگ مربوط به آن عنصر را در لایه گرافیکی (فایل xml) قرار بدهید.
2- Adapter مربوط به ListView را بیابید. به عنوان مثال، برای کلید شماره 843 ، کدهای Adapter به صورت زیر می باشند :
سپس کد مشابه کد زیر را بیابید :
که به ما View مربوط به هر item (ردیف) را می دهد (در اینجا با نام row که نامی دلخواه است).
3- اکنون عنصر مورد نظر را باید با روش findViewById بیابیم، اما قبل از آن، حتما باید View مربوط به هر item را ذکر کنیم :
مثل کد زیر :
4- پس از شناسایی عنصر، کدهای مورد نظرمان را برای آن می نویسیم. اگر کدها باید بر اساس شماره item باشند (یعنی برای item ها مختلف، متفاوت باشند)، متغیر position به ما شماره متناظر با item را می دهد (البته از صفر شروع می شود) و می توانیم کدها را بر اساس شماره item بنویسیم.
برای عنصر CheckBox یا هر عنصر دلخواه دیگر که قصد داریم در تمامی item های ListView نمایش داده شوند :
1- فایل XML متناظر با لایه گرافیکی برای هر item (ردیف - row) را باز کنید و تگ مربوط به آن عنصر را در لایه گرافیکی (فایل xml) قرار بدهید.
2- Adapter مربوط به ListView را بیابید. به عنوان مثال، برای کلید شماره 843 ، کدهای Adapter به صورت زیر می باشند :
کد پیاچپی:
private class MyAdapter extends ArrayAdapter<String>{
public MyAdapter(Context context, int resource, int textViewResourceId,
String strings) {
super(context, resource, textViewResourceId, strings);
// TODO Auto-generated constructor stub
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.list_item, parent, false);
String stringName = "string_key_" + String.valueOf(position+1);
int string_res_ID = getResources().getIdentifier(stringName,"string",getPackageName());
String my_string = getResources().getString(string_res_ID);
TextView tv = (TextView) row.findViewById(R.id.textView1);
tv.setText(my_string);
String imageName = "key_" + String.valueOf(position+1);
int image_res_ID = getResources().getIdentifier(imageName,"drawable",getPackageName());
ImageView iv = (ImageView) row.findViewById(R.id.imageView1);
iv.setImageResource(image_res_ID);
return row;
}
}
سپس کد مشابه کد زیر را بیابید :
کد پیاچپی:
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.list_item, parent, false);
که به ما View مربوط به هر item (ردیف) را می دهد (در اینجا با نام row که نامی دلخواه است).
3- اکنون عنصر مورد نظر را باید با روش findViewById بیابیم، اما قبل از آن، حتما باید View مربوط به هر item را ذکر کنیم :
کد پیاچپی:
row.findViewById
مثل کد زیر :
کد پیاچپی:
TextView tv = (TextView) row.findViewById(R.id.textView1);
4- پس از شناسایی عنصر، کدهای مورد نظرمان را برای آن می نویسیم. اگر کدها باید بر اساس شماره item باشند (یعنی برای item ها مختلف، متفاوت باشند)، متغیر position به ما شماره متناظر با item را می دهد (البته از صفر شروع می شود) و می توانیم کدها را بر اساس شماره item بنویسیم.
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.