بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
ایجاد لیست ویو با حالت انتخاب تک آیتم با کاستوم آداپتر سفارشی
سلا به همه دوستان عزیز
کسی میدونه برای اینکه بخوام لیست ویویی ایجاد کنم که با کاستوم آداپتر سفارشی پیاده سازی بشه و امکان انتخاب فقط یک آیتم رو داشته باشه
ینی اگر کاربر آیتم یک رو انتخاب کرد رنگ اون آیتم تغییر کنه.. و اگر دوباره آیتم دیگری رو انتخاب کرد رنگ آیتم یک به رنگ قبلیش بشه و آیتم جدید هایلایت بشه
کسی میتونه کمک کنه؟!
من خیلی گشتم ولی اکثرا اون چیزی نیستن که من میخوام چون من آداپتورم سفارشی هست.
ممنون میشم راهنمایی کنید
0
0
سلام ، کار خاصی لازم بکنی . فقط ویژگی choice mode مربوط به لیست ویو رو روی singleChoice بذار . روی هر آیتم لیست ویو که کلیک بشه همون آیتم ، انتخاب شده محسوب میشه . (9 سال پیش)
0
0
خب اینکارو کردم ولی کار نکرد... (9 سال پیش)
0
0
من از همین روش استفاده میکنم . کار نکرد یعنی چه اتفاقی میفته ؟ هر آیتمو کلیک میکنی ، قبلی از انتخاب خارج نمیشه ؟ (9 سال پیش)
0
0
بله من همه جا دیدم که این روش رو گفتن ولی برای من کار نمیده..شما آداپتر سفارشی استفاده میکنید؟ و اینکه اکتیویتیتون اکستنز شده از listActivity هست؟ (9 سال پیش)
0
0
نه ، اکتیویتی من اکستندز از Activity هست و همون کلاس ادپتر استاد رو استفاده کردم . و با تعیین singleChoice برای لیست ویو به هدفم رسیدم . البته آیتم های من هر کدوم فقط یه عنصر textView دارن ، نه بیشتر . کد کلیک روی آیتم ها رو هم در ادپتر ننوشتم ، در اکتیویتی نوشتم ، چون به بعضی عناصر اکتیویتی هنگام کلیک نیاز داشتم . (9 سال پیش)
0
0
خب میشه لطف کنید و یه نمونه کد از برنامتون رو اینجا بذارید من ببینم!؟ (9 سال پیش)
0
0
یه نمونه کد بزارید تا راحتر بشه راهنمایی کرد . من خودم از لیست ویو استاد استفاده میکنم تا به حال هم به مشکل بر نخوردم . (9 سال پیش)
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
Reza
9 سال پیش
+1
0
اصلا کد خاصی ندارم :
این کل کدهای ادپتر استاده که حجمشو کم کردم ، چون هر آیتم فقط یه TextView داره :
package ؟؟؟.؟؟؟؟؟؟؟؟.؟؟؟؟؟;
import java.util.ArrayList;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
public class AdapterProfile extends ArrayAdapter<StructProfile> {
public AdapterProfile(ArrayList<StructProfile> array) {
super(G.context, R.layout.adapter_profiles, array);
}
private static class ViewHolder {
public TextView txtName;
public ViewHolder(View view) {
txtName = (TextView) view.findViewById(R.id.txtName);
}
public void fill(final ArrayAdapter<StructProfile> adapter, final StructProfile item, int position) {
txtName.setText(item.profile_Name);
}
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
StructProfile item = getItem(position);
if (convertView == null) {
convertView = G.inflater.inflate(R.layout.adapter_profiles, parent, false);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.fill(this, item, position);
return convertView;
}
}
در اکتیویتی هم این کد رو نوشتم برای کلیک آیتم های لیست ویو : ( به درد شما نمیخوره ولی میذارم ، برای شما نکته اینه که لیست ویویی که singleChoice باشه خود به خود همیشه یک آیتم انتخاب میشه )
((ListView) findViewById(R.id.lstProfiles)).setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (parent.getCount() > 0) {
StructProfile item = (StructProfile) parent.getItemAtPosition(position);
DataBase.set_Selected_Profile(item);
}
}
});
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .