بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

درخواست کمک برای نمایش متنی که کاربر واردمیکنه(درEditText) توی یه TextView درهمان صفحه

مدیریت گفتگو
حامی 12 سال پیش
آخرین تغییر: 12 سال پیش

سلام به همگی دوستان.توی یه صفحه xml  برنامه ام،یک EditText دارم و دوتا TextView .میخوام وقتی کاربر روی ادیت تکست کلیک کرد و سافت ویرکیبورد باز شد و یه متنی رو تایپ کرد،وقتی سافت کیبورد رو بست یا اینترزد،هرمتنی که نوشته رو بیاد توی  یکی از این تکست ویوها نمایش بده،و هربار که روی این تکست ویو کلیک شد،یه شماره به تکست ویو بعدی اضافه بشه.(یعنی یکی از تکست ویوها کانترهستش).استاد توی یکی از ویدئوهاآموزش دادن ولی اون وقتی هستش که Button توی صفحه باشه و بعد از این که روی اون دکمه کلیک شد متنش رو نمایش میده.اما من میخوام وقتیکه متنش رو تایپ کرد و کیبورد رو بست یا اینترزد متن رو توی تکست ویو نمایش بده.کسی میتونه کدش رو کمکم کنه؟

نظرات

پاسخ‌ها 5

hoseinnrz 12 سال پیش

ببین این به کارت میاد :

         EditText.setOnKeyListener(new OnKeyListener() {

            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_ENTER) {  // در این خط چک میکنه که اینتر زده یا نه
                   // صرفا برای مثال دو خط پائین رو نوشتم

textview1.settext(EditText.Gettext.toString());
textview2.settext(Integer.valueof(textview2.getText().toString())+1 + "")


} return false; } });

نظرات

حامی 12 سال پیش
سلام.چندتاارورداشت حلش کردم اما این یکی حل نشد و این ارور رو داد: Gettext cannot resolved or is not a field میدونین مال چیه؟چیکارباید کرد؟
CreativeBoy 12 سال پیش
یه " ( ) " بعد از getText بذاری حله. توی اون if از KEYCODE_BACK هم میتونی استفاده کنی. برای textView2 هم یه کار ساده اینه که بیرون از scope مربوط به setOnKeyListener میتونی یه counter بذاری و داخل Scope هی بهش اضافه کنی و به این شکل بدی به textView2 ا----> ;(textView2.setText("" + counter. به نظر من همین کد کارتو راه میندازه ؛)
حامی 12 سال پیش

  سلام داداش.ممنونم جواب دادی اما نشد.اون gettext  رونمیگم.اون بالایی رو میگم.الان دوتا اروردارم.ببین:

نظرات

Spirit 12 سال پیش
اسم صحیح متد مد نظر : getText هست نه GetText
حامی 12 سال پیش
سلام داداش.نه اون جورکه شما گفتی تغییر دادم اما هنوز ارورمیده و میگه: getText cannot resolved or is not a field
CreativeBoy 12 سال پیش
دوست عزیز شما cursor رو ببر بعد از GetText و ctrl + space رو بزن یا این که به صورت دستی به این شکل تغییر بده ( ()getText ) برای valueof هم همین کارو انجام بده یا این که به صورت دستی به این شکل تغییر بده ( ()valueOf ). خطاهای شما به خاطر رعایت نکردن حروف بزرگ و کوچک هست.
حامی 12 سال پیش

داداش وقتی بعد از GetText  میزنم: ctrl +space فقط دوتا گزینه میاد که هردوتاش getTextColors هستش.داداش شما یه لطفی بکن همون کدی که خودت مدنظرت هست رو بده بهم تا من فقط کپی پیست کنم و اینجوری شما مطمئن بشی.اون قسمت آخرش که به  تکست ویو دوم اضافه بشه هم فعلا نمیخواد.شما بیزحمت فقط کد اینکه متن رو از EditText  بخونه و با اینتر زدن یا بستن سافت کیبورد،متن رو توی تکست ویو نمایش بده رو برام بنویس.دمت گرم.من خودم اون قسمت کانترش رو بعدا مینویسم...

نظرات

Ali 12 سال پیش

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

 final EditText edt = (EditText) findViewById(R.id.edt);
final TextView txt4 = (TextView) findViewById(R.id.txt4);
final TextView txt5 = (TextView) findViewById(R.id.txt5);

edt.setOnKeyListener(new OnKeyListener() {

@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_ENTER) {

txt4.setText(edt.getText().toString());
txt5.setText(Integer.valueOf(txt5.getText().toString() + 1 + ""));
}
return false;
}
});

نظرات

حامی 12 سال پیش
علی آقا دمت گرم.وقتی این کدی که شما کامل گذاشتی رو گذاشتم هیچ اروری نداشت.البته برنامه کرش میکنه ولی مهم نیست چون تا اون قسمتی که باید بعد از اینکه اینتر زده شد،توی تکست ویو اولی نشون بده نشون میده.کرش برنامه 100 درصد بخاطر این خطه: txt5.setText(Integer.valueOf(txt5.getText().toString() + 1 + "")); اما مهم نیست.چون بجای این خط یه کانتر میزارم.قبلا گذاشتم.میتونم درستش کنم.علی آقا ممنونم.همچنین از CreativeBoyو hoseinnrz و S P ! R ! T و ezio1128 تشکر میکنم که وقت گذاشتن.ممنونم از همگی.
کاشی زاده 12 سال پیش

سلام .

یه راه برای انجام اینکار میگم فکر کنم به کارت بیاد . شما برای editText یه واچر تعریف میکنی با استفاده از این کد :

 addTextChangedListener

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

 @Override
			public void onTextChanged(CharSequence s, int arg1, int arg2, int arg3) {
}

خب ، حالا هر حرفی که وارد میکنه کاربر شما میتونی نمایش بدی مقدار s همون حرفی هست که کاربر وارد کرده کافی تو این قسمت براش بنویسی مقدار تکست ویو رو برابر مقدار قبلی + s بکنه . 

نظرات


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