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

لیست ویو ، اما با سورسی ساده و آسون تر !

مجتبی یگانه  12 سال پیش  11 سال پیش
+2 0

دوستان راستش من ، طرز کاره آموزش لیست ویو رو نفهمیدم ، خوب دارم سعی میکنم بفهمم اما یه روش دیگه هم به ذهنم رسید ، گفتم شاید برای شما هم جالب باشه :)

طرز کاره پروژه :

در یک حلقه ی For در زمان اجرا یک دکمه و یک تکست ویو ایجاد میشود ، یعنی شی در زمان اجرا ، به تعداد نیاز ساخته میشه و به یک اسکرول ویو اضافه میشه 

یعنی ما کار رو خودمون دستی انجام میدیم ، به تعدادی که نیاز داریم زمان اجرا شی ایجاد میکنیم و توی یک اسکرول ویو میزاریمش !

 @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        final LinearLayout lnr = (LinearLayout) findViewById(R.id.linear1);

        for (int i = 1; i < 20; i++)
        {
            final TextView txt1 = new TextView(this);
            txt1.setText("آیتم شماره" + i);
            txt1.setTag("" + i);
            txt1.setBackgroundResource(R.drawable.txt_style);
            lnr.addView(txt1);
            txt1.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    Intent intent = new Intent(RotateActivity.this, ActivityShow.class);
                    intent.putExtra("id", "" + txt1.getTag());
                    RotateActivity.this.startActivity(intent);
                }
            });
            //---------------------------------------
            Button btndelete = new Button(this);
            btndelete.setText("حذف");
            btndelete.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    lnr.removeView(txt1);
                    lnr.removeView(v);
                }
            });
            lnr.addView(btndelete);

        }

    }

اگه شما هم روش ساده تری برای ساخت LISTVIEW بلدید ، بگید استفاده کنیم ! :)

 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
sadeghbarout  12 سال پیش
+1 0

البته روشت یه خوبی داره و یه بدی

بدیش اینکه همه تنظیمات view  ها رو باید با کد انجام بدیم ( margin , color , size ,...)

خوبیش اینکه (البته خوبی نسبت به روشی که میخواد در ادامه بگم) هر چیزی بخوایم میتونیم اضافه کنیم

اما یه راهی که به گمونم چقدر پبش یکی از بچه ها هم لینک گذاشته بود اینجوری بود (البته هر عضو  این لیست فقط شامل یه text خالیه) :

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        final String[] name = new String[]{ "item1", "item2", "item3", "item4", "item5" };
        ListView mylist = (ListView) findViewById(R.id.lv_name);

        mylist.setAdapter(new ArrayAdapter<String>(ActivityMain.this, android.R.layout.simple_list_item_1, name));

        mylist.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
                Toast.makeText(getApplicationContext(), "value : " + name[position] + " in position :" + position + " clicked !", Toast.LENGTH_SHORT).show();
            }

        });
    }
0 0
درسته ، اون "یکی از بچه ها" که میگید خودمم ، من این رو تو نت دیدم ، اما مشکلش اینه که فقط یه تکست ویو هست ، اما همون طور که دیدید ، من توی این پروژه ی دکمه هم قرار دادم ، برای اینکه این یه بدی که شما میگی نباشه ، 1 - از یه Xml استفاده کردم 2- میشه یه نمونه از یک تکست ویو که روی فرم هست کپی گرفت که هنوز سورسی واسه دومی پیدا نکردم ! پس میگـــــــــــــم => بــــــــــــــــــزودی ! (12 سال پیش)
0 0
ا خودت بودی؟ D: در نکمیل صحبتت میشه گفت یه کار بهتر میشه کرد اونم اینکه مثل استاد یه فرم دیگه طراحی کنیم و با یه Inflater اونو به یه View تبدیل کنیم . یا یه CustomeView طراحی کنیم که تقریبا همون روش 2 تو ه ;) البته یادمون نره کل اون مشکلات به خاطر این بود که اگه آیتم های زیاد رو بخواد یه جا لود کنه برنامه سنگین میشه! پس این روش ها فقط برای آیتم های کم مناسبه ;) (12 سال پیش)
0 0
اقا راستی اسمت چیه؟ زیاد با هم برخورد کردیم امروز D: من که مشخصه صادقم ;) (12 سال پیش)
0 0
خوش وقتم :) ، اسم منم alu فامیلیمم که تابلوئه دیگه 0075 ، صادق جان یه کلیک رو alu0075 بکنی ، میری تو صفحه مشخصات :) (12 سال پیش)
0 0
خوب اسکرول ویو یه جا کار میکنه ؟ مطمئنی ؟ من فک کنم همون روش الواریه آآآ ! (12 سال پیش)
0 0
منم خوش وقتم alu خان D: نه مجتبی جون مطمئن نیستم باید بپرسیم ولی اون یه مشت کدی که استاد نوشت فکر کنم برای همین الواری شدنش بود (12 سال پیش)
0 0
الان با همون کلک استاد (قرمز کردن یکی از الوارها) تست کردم. نه حالت الواری نداشت و همه رو یه جا لود میکنه ;) (12 سال پیش)
0 0
ولش کن بابا کی به حافظه کار داره ، خودت راحت باش ! :| (12 سال پیش)
پاسخ به سوال 
uncocoder  12 سال پیش
+12 0

شما فرض کنید که می خواید لیست Contact های گوشی رو Load کنید و توی یک لیست نشون بدید، روش شما گوشی رو می ترکونه. روش باید از نظر Memory بهینه باشه که ListView هست.

توجه داشته باشید که ListView یکی از قسمت های گیج کننده اندروید هست اما چرا؟ چون قبلاً در هیچ Framework ـی چنین روشی مطرح نشده بود و همیشه همه جا، مشکل این بود که چجوری یک لیست با قیافه دلخواه و Optimize شده رو نشون بدیم، که برای اولین بار با کمترین Foot Print در اندروید معرفی شد.

0 0
باتشکر از استاد و دوستان من یه مبتدیم و دو سه بار این قسمت رادیدم و متوجه نشدم ولی 100 بار دیگه میبینم و میپرسم تا یاد بگیرم بنظرم مابقی مبتدی ها هم بهتر این مسیرا را برن چون اخرش اخرش یه روزی نیاز پیدا میکنن....البته یادگرفتن همیشه لذت بخشه چه اشکالی داره این روش ها هم یاد بگیریم. (11 سال پیش)

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