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


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
گرفتن متن یک ادیت تکست با آی دی جدید (در برنامه نویسی اندروید)

گرفتن متن یک ادیت تکست با آی دی جدید (در برنامه نویسی اندروید)

#1
سلام دوستان
من دارم یک چیزی شبیه به صفحه ی xml پریفیرنس درست می کنم که کاربران می تونن شماره ی موبایل خودشون رو تو این صفحه در یک ادیت تکست وارد کنن. اما بحث من سر اینه که می خوام یک دکمه بذارم که اگر کاربر کلیک کرد یک ادیت تکست جدید باز بشه و اگر خواست شماره ی دیگری هم وارد کنه.
با این روش یک ادیت تکست جدید می سازم:

کد پی‌اچ‌پی:
edt1 = new EditText(ClassApplication.context);
lay1.addView(edt1); 

و مقادیر هم بوسیله ی preference دریافت و ذخیره می شن.
و به خاطر این که تعداد درست بشه همه رو انداختم تو ی حلقه for تا تعداد مورد نظر دریافت و ذخیره بشن.
و با هر بار باز شدن صفحه یک حلقه for درست کردم که مقادیر رو از sharedpreference بخونه و به تعداد لازم ادیت تکست درست کنه و اونهارو تو ادیت تکست ها بریزه.
و یک گزینه جدید ایجاد کردم که با کلیک روی اون یک ادیت تکست ایجاد می شه و مقادیر درونش به عنوان یک preference جدید اضافه می شه به موارد قبلی.

حالا مشکل من اینجاست که وقتی یک ادیت تکست جدید ایجاد می شه و مقادیرش ذخیره می شن دیگه بقیه قابلیت تغییر ندارن.
یعنی فقط ادیت تکست آخری که ایجاد شده مقادیرش ذخیره می شن.
حالا من اگر بخوام کاربر روی یکی از ادیت تکست های قبلی کلیک کرد و متنش رو تغییر داد و ذخیره رو زد اون هم ذخیره شه باید چیکار کنم؟

من این به فکرم رسید که یک دکمه ذخیره قرا بدم که وقتی کلیک شد علاوه بر آخرین ادیت تکستی که ایجاد و ذخیره شده، متن تمام ادیت تکست ها رو بگیرم و جایگزین متن قبلیاشون کنم.
برای این کار یا کارهای دیگه شبیه این کار لازم دارم که آی دی تمام ادیت تکست ها رو داشته باشم. اما وقتی که یک ادیت تکست جدید درست می کنم این آی دی که در مثال من edt1 هست فقط برای آخرین ادیت تکست قرار می گیره و من هر کاری بخوام بکنم فقط روی همون اعمال می شه. حالا من می خواستم با روش setid برای همه ی ادیت تکست ها آی دی جدید قرار بدم اما روش استفادش رو نمی دونم. یعنی چجوری بعد از آی دی جدید دادن به ادیت تکست ها با آی دی جدید متن ادیت تکست ها رو بگیرم.
یعنی الآن که هر ادیت تکست یک آی دی جدید پیدا کرده چجوری به کد بفهمونم اونی که ادیت تکست جدیدش فلان هست رو متنش رو بگیر.
بحقم سر گرفتن متن با آی دی جدید هست که چجوری می شه؟
ممنون می شم راهنماییم کنید.
پاسخ

گرفتن متن یک ادیت تکست با آی دی جدید (در برنامه نویسی اندروید)

#2
سلام.
اگر درست منظور شما را متوجه شده باشم، راه اصلی می تواند این باشد که وقتی ما در حلقه for ، تعدادی EditText می سازیم، کلیه مشخصات آنها متفاوت باشد. اما موضوع این است که چگونه در حلقه for کدها را به گونه ای بنویسیم که نام و سایر مشخصات EditText ها به صورت متفاوت تعریف شود. زیرا مثلا ما در کد مورد نظر، نام EditText را برابر edt1 تعریف کردیم، حالا چگونه می توانیم کدی بنویسیم که در گام اول حلقه، نام EditText برابر edt1 ، در گام دوم برابر edt2 و همین طور تا آخرین گام، نام هایی با پیشوند ثابت و با پسوند عددی متغیر داشته باشیم.
در زبان های برنامه نویسی مختلف، راه حلی که برای این موضوع مطرح می شود، اجرای یک رشته (String) به صورت دستور (Command) است. زیرا ما می توانیم که پسوند عددی موجود در رشته را در هر گام حلقه، تغییر بدهیم و بعد آن رشته (String) را به صورت یک دستور اجرا کنیم. به عنوان مثال، در متلب (MATLAB)، به این صورت عمل می کنیم (با دستور eval) :

کلید شماره 154

در زبان PHP نیز تابعی (دستوری) با نام eval هست که دقیقا برای همین منظور به کار می رود.
در زبان java (برنامه نویسی اندروید)، تاکنون به دنبال روش (method) مناسب برای این منظور نبوده ام، اما فکر می کنم لینک زیر کمکتون کنه :

http://stackoverflow.com/questions/26050...on-in-java

اگر روش خاصی را به کار بردید که دقیقا عملکرد eval را داشت، تذکر بدهید تا سایر دوستان نیز از همان روش استفاده کنند (در لینک بالا، برای یک عبارت ساده مثال زده، ولی شما روش را برای یک دستور مثل همان شناسایی یا ساخت عنصر تست کنید).

-------------------------------------------------------------------------------

البته این موردی بود که حدس زدم به دنبال آن هستید، شاید سایر دوستان، راه حل های ساده تری را برای مشکل شما ذکر کنند.

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


پرش به انجمن:


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