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

عدم تکرار متن نوشته شده در ادیت تکس یک لیست ویو

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

سلام دوستان . من یک لیست ویو ساختم که هر آیتمش یک ادیت تکس هست . حالا یک دکمه تعریف کردم  ک هر بار که بزنیم یک ادیت تکس به لیت اضافه میشه . مشکل مثل مشکل آموزش استاد هست ک اگ اسکرول کنیم مقداری ک توی ادیت تکست اولی نوشتیم با خارج شدن از لیست همون مقدار دوباره در یک ادیت تکس دیگه ظاهر شده .منتهی من نمیدونم چه شرطی بذارم توی تابع fill ک اگ اسکرول کرد مقداری ک الان نوشته توی ادیت تکس دیگ توی ادیت تکسای دیگ تکرار نشه . :( خواهش میکنم اگ کسی میدونه راهنماییم کنه . ممنونم

0 0
توی متد fill برای EditText ها setText کنید با مقدار "" (9 سال پیش)
0 0
ممنونم از پاسخ گویی تون اما با این کار هر چیزی ک کاربر وارد کنه اگ جایی کلیک کنه اون مقداری ک وارد شده Null میشه . نه اینکه وقتی اسکرول کرد اونو نال کنه . فکر کنم باید بگیم آخرین آیتمی ک توی ص میتونه جای بگیره رو مشخص کن . وقتی ص جا به جا میشه همهی ادیت تکست ها رو نال کن تا دوباره کاربر وارد کنه !! نظرتون چیه؟ (9 سال پیش)
+1 0
متد fill میاد و Item هارو یکی یکی مقدار دهی میکنه و اگر شما مقدار دهی نکرده باشید ، آخرین مقداری که برای آخرین item قرار داشته باشه همون رو برای اولین Item نمایش میده ، خود متد Fill اطلاعات رو از قبل داره و بر همون اساس مقدار دهی میکنه ، حالا شما اگر میخواید موقع واریز مقدار توسط کاربر اون مقدار برای فقط همون item بمونه باید این مقدار رو به آرایه ایی که به باهاش لیست ویو رو ساختید اطلاعات رو واریز کنید ، اینطوری متد fill اون اطلاعات رو داره و برای هر آیتم بطور صحیح ست میکنه ، این میتونه مفید باشه : لینک (9 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Morteza  9 سال پیش
+1 0

برای ذخیره مقدار هر EDITBox و همینطور ذخیرش از کد زیر توی متد fill استفاده کنید :


edtUserInput.setText(item.userInput);
btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
item.userInput = edtUserInput.getText().toString();
}
});

 

item هم یک نمونه از StructNote است.

StructNote item = new StructNote();
 
0 0
ممنونم از اینکه جواب دادید اما ی سوال . الان شما ی فیلد توی کلاس StructNote تعریف کردید به نام UserInput ک از جنس String هست و مقدار اولیه Null داره . حالا میگسن ی دکمه تعریف میکنم ک وقتی کاربر اونو زد مقداری ک توی ادیت تکس بوده رو بریزه توی همون UserInput کلاس StructNote !! (برای ذخیره ) اگ نخوایم این دکمه ی BtnSave وجود داشته باشه چی؟ من میگم وقتی اسکرول کرد کاربر دوباره نال بشه مقدار EdtUserInput !!! یعنی دستور اینک وقتی اسکرول کرد . یا الوار ها خواستند دوباره ایجاد بشند ؟؟ (9 سال پیش)
پاسخ به سوال 
Morteza  9 سال پیش
+1 0

برای ذخیره سازی رشته ورودی بدون استفاده از btn میتونید از کد زیر استفاده کنید:

edtUserInput.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {

}

@Override
public void afterTextChanged(Editable s) {

}
});

با استفاده از log گیری خیلی راحت میتونید طرز کار کد بالا رو متوجه بشید و طبق نیازتون استفاده کنید.
قسمت دوم سوالتون رو هم متوجه نشدم.


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