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

مشکل در setText کردن یک مقدار در TextView

احسان منصوری  12 سال پیش  12 سال پیش
0 0

سلام دوستان

شاید سوال تکراری باشه. ولی از دیروز دارم سرچ میکنم تو سایت ولی به نتیجه نرسیدم

من سه تا TextView دارم که یک عمل محاسباتی روی دوتاشون انجام میشه و نتیجه توی سومی قرار داده میشه. 

یه دکمه ویرایش وجود داره که امکان ویرایش مقدار یکی از TextViewها رو فراهم میکنه. ولی با ویرایش مقدار  TextView، مقدار جدید محاسبات که TextView سوم هست، رفرش نمیشه و حتما باید از اکتیویتی خارج شد و بعد از وارد شدن، مقدار جدید نمایش داده میشه.

راهی هست که همزمان با کلیک روی دکمه ویرایش، مقدار TextView سومی رفرش بشه؟

 

0 0
شما کدها تون رو بزارید اصلاح کنیم با هم (12 سال پیش)
0 0
در آموزش باران یکجا هست که مینویسیم صفحه نا معتبر شد . خودش دوباره میکشه. چک کنید (12 سال پیش)
 برای این سوال 4 پاسخ وجود دارد.
پاسخ به سوال 
احسان منصوری  12 سال پیش
0 0

این کدیه که واسه محاسبه ضرب نوشتم:

         int value = Integer.parseInt(txtarticlevalue.getText().toString());
         int price = Integer.parseInt(txtprice.getText().toString());
         int mul = (price * value);
         String str = String.valueOf(mul);
         txttotalprice.setText(str);

ولی وقتی این کد رو هم توی دکمه ویرایش مینویسم، انجام نمیشه

0 0
اینا که به نظر مشکلی ندارن ، کدهای وسیع تری بزارید (12 سال پیش)
0 0
وسیعتر؟ کد ویرایش رو هم میذارم. (12 سال پیش)
پاسخ به سوال 
احسان منصوری  12 سال پیش
0 0

اینم کد دکمه ویرایشم. غیر از این کدی که به این ربطی داشته باشه ندارم. ولی نمیدونم چرا رفرش نمیشه.

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

 btncheck.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View arg0) {

                    txtarticlevalue.setText(txtvalue.getText());
                    int value = Integer.parseInt(txtarticlevalue.getText().toString());
                    int price = Integer.parseInt(txtprice.getText().toString());
                    int mul = (price * value);
                    String str = String.valueOf(mul);
                    txttotalprice.setText(str);
                    adapter.notifyDataSetChanged();

                }
            });
0 0
اینو تست کن ببین حل میشه؟ txtarticlevalue.setText(txtvalue.getText().toString()); (12 سال پیش)
0 0
Sadeghbaroutجان مشکل از txtarticlevalue نیست. مشکل از txttotalprice هستش که با ویرایش کردن مقدار txtarticlevalue ، مقدار txttotalprice همزمان رفرش نمیشه (12 سال پیش)
0 0
ببخشید من الان متوجه شدم. این کد هم جواب نمیده. (12 سال پیش)
0 0
اصلا شما چه اصراری داری اول txtarticlevalue رو settext بکنی بعد بخونیش؟ خب چرا تو خط دوم (int value...) مستقیم مقدار txtvalue رو نمیخونی؟ اینو تست کن باید جواب بده. اگه نداد مشکل از چیز دیگه است. (12 سال پیش)
0 0
اگه جواب نداد یه خط درمیون مقادیر رو log کن ببین کجای کار مشکل داره (12 سال پیش)
0 0
والا من که پاک گیج شدم. هیچی روش جواب نمیده. log میگیرم کدی که توی ادیت نوشتم اصن اجرا نمیشه. داداش وقت دارین برنامه رو بفرستم واستون شاید یه فرجی شد؟ (12 سال پیش)
0 0
اون آداپتر چیکارس اونجا؟ این کارا تو ListView انجام میشه؟ (12 سال پیش)
0 0
بله (12 سال پیش)
0 0
اینو از اول باید میگفتی ، این انرژی که الان صرف کردن دوستان بهتر مصرف میشد ، این کدا تو Activity هستش یا Adapter? (12 سال پیش)
0 0
واقعا معذرت میخوام. کدها توی Adapter هستش (12 سال پیش)
0 0
ای بابا :| - خوب اگه تو لیست هست ، باید notifyDataSetChanged بشه :) (12 سال پیش)
پاسخ به سوال 
مجتبی یگانه  12 سال پیش
0 0

به طور کلی ، وقتی ما یک شی را setText کنیم ، در Render بعدی صفحه اعمال میشه ، حالا اگه شما برنامه نویسی تون Multi Threading نباشه ، زمان این Render بیشتر میشه و در لاگ هم این پیام رو می بینید !

 N Frame Skipped !

و N تعداد فریم هایی هست که به دلیل پردازش سنگین در Thread اصلی فرصت پردازش رو نداره !

( برای اطلاعات بیشتر ، به سوال من در این مورد مراجعه کنید ! )

اما در حالت کلی به نظر نمیاد مشکل این باشه ، این بار با یک متن ساده (String) تست کنید ، ببینید جواب میده ؟

 Textview.setText("Some Text To Test !");

بعضی وقت ها برای من پیش اومده اگه متنی که میخوام Set کنم "" باشه ، کلا اون خط تاثیری نداره !

0 0
بله درسته کاملا. با متن ساده درست نمایش داده میشه. ولی اینی که من میخوام انجام بدم، یه محاسبه س. با کلیک روی دکمه ادیت، محاسبه انجام میشه و توی TextView سوم هم میشینه. ولی محتویات جدید جایگزین قبلی نمیشه(رفرش نمیشه) و باید از اکتیویتی خارج شد و دوباره وارد شد تا مقدار جدید نمایش داده بشه. (12 سال پیش)
0 0
مشکل از رفرش اکتیویتیه فکر کنم. نمیشه با کلیک روی دکمه، اکتیویتی فعلی رو رفرش کرد؟ (12 سال پیش)
پاسخ به سوال 
مجتبی یگانه  12 سال پیش
0 0

آقا احسان HTML نیست که ! ، خودش رفرش میشه و اصطلاحا بهش Render میگن.

اما مشکل شما در Parse کردن هاست ، وقتی عدد رو int کردید برای String کردن به این شکل عمل کنید

 String value = "" + int;

اما  شما اینطور عمل کردید

String str = String.valueOf(mul);

اما برای تست خروجی مقدار رو اینطوری ست کنید !

String value = "" + mul;
txttotalprice.setText(" Value is "+value );

حتما مشکل حل میشه !

0 0
:) اینو نمیدونستم که رفرش میشه. ولی بازم حل نشد (12 سال پیش)
0 0
مشکل از پیچ در کیس تون هست D: - نمی دونم والا ! (12 سال پیش)

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