سلام.
ابتدا باید فایل xml مربوط به تعریف ساختار گرافیکی ردیف ها (rows - items) را باز کنید و سه تگ Button به آن اضافه نمایید. در مبحثی که ذکر کردید، نام فایل xml برابر list_item.xml می باشد.
خوب حالا باید کدهای مورد نظرمان برای Button ها را تعیین کنیم (که با اشاره بر روی Button ها باید اجرا شوند).
برای این مورد، باید به سراغ کدهای روش getView برویم (که در Adapter مربوط به ListView نوشته شده). مثلا کد روش getView در مبحثی که ذکر کردیم را در اینجا نمایش می دهیم :
کد پیاچپی:
@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;
}
به چگونگی شناسایی عناصر موجود در فایل list_item.xml (که ساختار گرافیکی ردیف ها را تعیین می کند) توجه کنید. مشابه آنها، باید 3 دکمه (Button) را شناسایی کنید.
سپس می توانید به همان روش معمولی، کدهایی را برای Button ها در نظر بگیرید (که با اشاره روی Button ، اجرا شوند) :
کلید شماره 2728
تا این مرحله، ساختار کدنویسی برای شناسایی عناصر در ردیف ها و تعیین کدهایی مربوط به آنها را شرح دادیم. اما شما قصد دارید که در هر ردیف، نام Activity هایی که به آنها می رویم، متفاوت باشد. بنابراین شما می توانید کدها را بر اساس شماره ردیف ها، به صورت شرطی بنویسید (با if و else و ...). یا یک روش دیگر، استفاده از کد کلیو سپس تغییر مقادیر بر اساس مقادیر ذخیره شده در Array یا ArrayList می باشد. این دو روش را در ادامه توضیح می دهیم :
شماره ردیف از ListView در روش getView ، با نام position مشخص شده است. بنابراین شما به این صورت کد می نویسید که اگر position برابر 0 بود، نام Activity برابر مثلا MyActivity_1 باشد، اگر position برابر 1 بود، نام Activity برابر MyActivity_2 و ... (شیوه کدنویسی به سلیقه شما بستگی دارد، اما روش کلی به همین صورت شرطی نوشتن بر اساس position می باشد) .
همچنین می توان مقادیر مربوط به عناصر را در یک Array یا ArrayList نوشت و سپس عنصر برابر شماره position از آنها را خواند، در این حالت، یک کد کلی می نویسیم و نیازی به if و else هم نمی باشد. یعنی مثلا نام Activity ها را در یک Array می نویسیم و سپس بر اساس position ، نام از Array فراخوانی می شود و کد کلی بر اساس مقدار فراخوانی شده اجرا می شود.
اینکه کدام روش را انتخاب نمایید، بستگی به تعداد ردیف ها و سلیقه شما در کدنویسی دارد.
در ضمن، کد مربوط به رفتن به Activity جدید، هم با روش معمولی و هم بر اساس نام Activity (وقتی نام آن را به صورت String داریم) در دو کلید زیر ذکر شده است :
کلید شماره 2727
کلید شماره 252