انجمن سایت کلیدستان


رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
لیست ویو

لیست ویو

#1
Sad 
میتونم یه لیست ویو درست کنم که رو هر کدوم که کلیک کنم کلاس باز بشه نه یک کلاس مثلا تک تک آیتم ها رو به یک کلاس وصل کنم
پاسخ

لیست ویو

#2
سلام. 
دقیق منظورتون رو از ((یک کلاس باز بشه)) متوجه نمیشم، منظورتون اینه که یک Activity جدید باز شود (اجرا شود) ؟
یا می خواهید که هنگام اشاره بر روی یک item از ListView ، کدهای یک کلاس (class) اجرا گردد (مثلا با ساخت یک شیء (object) از آن کلاس و سپس اجرای توابعی (روش هایی - method) از آن) ؟
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

لیست ویو

#3
درسته منظورم همون activity هست یعنی هر آیتم به یک activity جداگانه وصل بشه نه مثل پروژه آمادتون تو اون پروژه رو همه کلیک میکردیم یه activity باز میشد من میخوام که هر کدوم متفاوت باشه ممنون از پاسختون
پاسخ

لیست ویو

#4
بنابراین با توجه به صحبت شما، برای هر 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 منتقل کنیم.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

لیست ویو

#5
یعنی منظورتون اینه که هر آیتم رو توی string بسازم ؟
پاسخ

لیست ویو

#6
بخش اول مربوط به ساخت خود 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 مورد نظرتان، راحتتر می شود.

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان