سلام.
شما روش getView را به طور کلی نوشته اید (نه داخل یک adapter). بنابراین وقتی دو تا ListView داریم، هر دوی آنها را تغییر می دهد.
ابتدا یک backup از پروژه اندروید خود تهیه کنید، سپس این موارد را انجام بدهید :
نوع کلاس (Class) را به ListActivity تغییر بدهید (از ArrayAdapter به ListActivity). سپس دو ListView را شناسایی می کنید (تگ آنها درون فایل xml نوشته می شود که باید دارای id های متفاوت باشند)، اما برای هر کدام، یک adapter جداگانه تعریف می کنید که هر کدام از آن دو adapter ، کدهای مربوط به روش getView خود را دارد.
برای درک بهتر تعریف adapter ، کلید زیر را ببینید (البته برای کلید زیر، چون یک ListView داشتیم، کدهای شناسایی ListView به دردتون نمی خوره و باید دو ListView را بر اساس id آنها شناسایی کنید) :
کلید شماره 843
که در آن، اینگونه برای ListView ، یک adapter ساخته ایم (کدهای adapter) :
شما یک adapter دیگر با نامی متفاوت می نویسید که برای ListView دوم به کار خواهد رفت. هر adapter هم کدهای روش getView مربوط به خود را دارد (جدا از یکدیگر).
شما روش getView را به طور کلی نوشته اید (نه داخل یک adapter). بنابراین وقتی دو تا ListView داریم، هر دوی آنها را تغییر می دهد.
ابتدا یک backup از پروژه اندروید خود تهیه کنید، سپس این موارد را انجام بدهید :
نوع کلاس (Class) را به ListActivity تغییر بدهید (از ArrayAdapter به ListActivity). سپس دو ListView را شناسایی می کنید (تگ آنها درون فایل xml نوشته می شود که باید دارای id های متفاوت باشند)، اما برای هر کدام، یک adapter جداگانه تعریف می کنید که هر کدام از آن دو adapter ، کدهای مربوط به روش getView خود را دارد.
برای درک بهتر تعریف adapter ، کلید زیر را ببینید (البته برای کلید زیر، چون یک ListView داشتیم، کدهای شناسایی ListView به دردتون نمی خوره و باید دو ListView را بر اساس id آنها شناسایی کنید) :
کلید شماره 843
که در آن، اینگونه برای ListView ، یک adapter ساخته ایم (کدهای 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;
}
}
شما یک adapter دیگر با نامی متفاوت می نویسید که برای ListView دوم به کار خواهد رفت. هر adapter هم کدهای روش getView مربوط به خود را دارد (جدا از یکدیگر).
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.