کلیدستان

نسخه‌ی کامل: لیست ویو
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
میتونم یه لیست ویو درست کنم که رو هر کدوم که کلیک کنم کلاس باز بشه نه یک کلاس مثلا تک تک آیتم ها رو به یک کلاس وصل کنم
سلام. 
دقیق منظورتون رو از ((یک کلاس باز بشه)) متوجه نمیشم، منظورتون اینه که یک Activity جدید باز شود (اجرا شود) ؟
یا می خواهید که هنگام اشاره بر روی یک item از ListView ، کدهای یک کلاس (class) اجرا گردد (مثلا با ساخت یک شیء (object) از آن کلاس و سپس اجرای توابعی (روش هایی - method) از آن) ؟
درسته منظورم همون activity هست یعنی هر آیتم به یک activity جداگانه وصل بشه نه مثل پروژه آمادتون تو اون پروژه رو همه کلیک میکردیم یه activity باز میشد من میخوام که هر کدوم متفاوت باشه ممنون از پاسختون
بنابراین با توجه به صحبت شما، برای هر item از ListView ، یک Activity در نظر گرفته می شود که با اشاره بر روی item ، وارد آن Activity می شویم. مثلا اگر ListView دارای 10 item باشد، 10 تا Activity مورد نظرمان است (که البته می توانیم برخی را تکراری در نظر بگیریم). 
ابتدا من کدهای روش معمولی که تنها به یک Activity منتقل می شدیم را اینجا می نویسم (تنها بخش مربوط به چگونگی عملکرد ListView بعد از اشاره کاربر بر روی یک item) :

کد:
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

             @Override
             public void onItemClick(AdapterView<?> parent, final View view,
                 int position, long id) {                        
                         Intent i = new Intent(getApplicationContext(), Show_Subjects.class);
                         String Subject_number = String.valueOf(position+1);
                         i.putExtra("subject_number", Subject_number);
                         startActivity(i);      
             }

           });

کد بالا، تنها یک مثال است و من می خواهم به نقش position در آن اشاره کنم. همچنین، در کد بالا، از روش معمولی برای انتقال به Activity استفاده کرده ایم، ولی برای مورد شما، توصیه می شود که از روش رفتن به Activity جدید با استفاده از رشته (string) استفاده شود که آن را در کلید زیر شرح داده ایم :

http://www.kelidestan.com/keys/keys.php?key=252

ابتدا شما باید یک آرایه رشته ای (string array) تعریف کنید که هر عنصر آن، برابر نام کامل (مسیر کامل - نام Activity به همراه نام package) یکی از Activity ها است (به کلید فوق مراجعه کنید تا متوجه  شوید که چگونه باید نام کامل Activity ذکر شود). مثل عبارت زیر :

کد:
com.kelidestan.example.NextActivity

که در آن، com.kelidestan.example برابر نام package برنامه اندروید و NextActivity همان نام Activity مورد نظرمان است.
دقت کنید که ترتیب قرارگیری رشته مربوط به Activity ها در آرایه رشته ای که گفتیم باید بسازید، باید متناسب با موقعیت item های ListView باشد.
با ساخت آرایه رشته ای متناظر، تنها باید در کدها، بر اساس position ، یکی از رشته های آن آرایه رشته ای را فراخوانی کنید (که همان نام کامل Activity است) و سپس با توجه به روشی که در مورد رفتن به یک Activity با استفاده از رشته شرح داده شده است (در کلید ذکر شده)، کاربر را به آن Activity منتقل کنیم.

یعنی منظورتون اینه که هر آیتم رو توی string بسازم ؟
بخش اول مربوط به ساخت خود ListView است که تعدادی item را با عنوان های مختلف به کاربر نمایش می دهد. ما این بخش را مثل سایر ListView ها می سازیم (ساخت item ها همانند یک ListView معمولی است و تغییر خاصی نیاز ندارد). سپس برای  ListView ساخته شده، هنگام به کار بردن روش setOnItemClickListener ، نیاز داریم که بدانیم هر item ، کاربر را به کدام Activity منتقل کند. بنابراین یک ایده این است که مسیر Activity های مختلف را در یک آرایه رشته ای (string array) ذخیره کنیم و بعد مثلا اگر item دهم از ListView توسط کاربر انتخاب شده باشد، عنصر دهم آرایه رشته ای را فراخوانی می کنیم که مسیر یک Activity است و سپس با روشی که لینک آن را در ارسال قبل برایتان قرار دادم، کاربر را به Activity مورد نظر منتقل می کنیم.
در واقع، روش setOnItemClickListener است که تعیین می کند هنگام اشاره کاربر بر روی item های ListView چه اتفاقی بیفتد. بنابراین ما یک ListView معمولی می سازیم (بر اساس عنوان های مورد نظرمان برای item ها) و بعد به سراغ کدهای روش setOnItemClickListener می رویم تا کدهای مناسب برای انتقال به Activity ها را در آن قرار بدهیم.
توصیه می کنم ابتدا یک لیست معمولی با  ListView بسازید. سپس به طور جداگانه، آن روش مورد نظر برای انتقال کاربر به Activity جدید، با استفاده از یک رشته، را تست کنید (به صورت دو پروژه اندروید جداگانه)، زمانی که این دو را انجام بدهید، با بخش های کدها بهتر آشنا می شوید و ساخت ListView مورد نظرتان، راحتتر می شود.