آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ایجاد لیست ویو با حالت انتخاب تک آیتم با کاستوم آداپتر سفارشی

mosafer  9 سال پیش  9 سال پیش
0 0

سلا به همه دوستان عزیز

کسی میدونه برای اینکه بخوام لیست ویویی ایجاد کنم که با کاستوم آداپتر سفارشی پیاده سازی بشه و امکان انتخاب فقط یک آیتم رو داشته باشه

ینی اگر کاربر آیتم یک رو انتخاب کرد رنگ اون آیتم تغییر کنه.. و اگر دوباره آیتم دیگری رو انتخاب کرد رنگ آیتم یک به رنگ قبلیش بشه و آیتم جدید هایلایت بشه

کسی میتونه کمک کنه؟!

من خیلی گشتم ولی اکثرا اون چیزی نیستن که من میخوام چون من آداپتورم سفارشی هست.

ممنون میشم راهنمایی کنید

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);
                }
            }
});
0 0
نمیدونم چرا حل نمیشه..ممنون ازت که راهنمایی کردی (9 سال پیش)
0 0
شما در کدهای جاوا مشکل دارین یا در فایل های xml که برای selector آیتم ها درست کردین ؟ (9 سال پیش)
0 0
با کدهای جاوا به مشکل خوردم حتی از این کد هم استفاده کردم : 'listViewsetChoiceMode(ListView.CHOICE_MODE_SINGLE);' ولی باز نشد (9 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .