رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

اجرای کدها بعد از اتمام ProgressBar در اندروید استودیو


پست های پیشنهاد شده

درود و سپاس خدمت مدیران و اساتید گرامی

 

بنده توی اندروید مبتدی هستم از این که سوالات ساده میپرسم عذر میخوام :exclamation::heart:

 

من در یک اکتیویتی چطور بعد از اتمام کار یک پروگرس بار (یعنی زمانی که به 100 رسیده باشه) مثلا به یک Textview یک مقداری رو set کنم ؟؟ یا اینکه کدهای دیگه ای لازم باشه اجرا بشن

در حال حاظر بعد از اینکه پروگرس بار به پایان رسید و موقع اجرای اون کد های مد نظر شد با پیغام خطا مواجه میشم و برنامه به کل بسته میشه

 

این کد کلیدی که ProgressBar رو کامل میکنه

 

  public void startProgress(View view) {
        // do something long
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i <= 100; i++) {
                    final int value = i;

                    doFakeWork();
                    prg1.post(new Runnable() {
                        @Override
                        public void run() {
                            String Message = String.valueOf(value);
                            prg1.setProgress(value);


                        }
                        if (value == 100){
                            textCounter.setText("دقیقا این متن ست نمیشه و برنامه خطا میده");
                            
                        }
                    });

                }
            }
        };
        new Thread(runnable).start();
    }

    // Simulating something timeconsuming
    private void doFakeWork() {
        try {
            Thread.sleep(35);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام.

کدتون رو اینطوری ویرایش کنید درست می شه:

  public void startProgress() {
        // do something long
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i <= 100; i++) {
                     value = i;

                    doFakeWork();
                    prg1.post(new Runnable() {
                        @Override
                        public void run() {
                                        ////// این قسمت رو اضافه کنید
                        runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                                    String Message = String.valueOf(value);
                                    prg1.setProgress(value);
                                    if (value==100){
                                        textCounter.setText("دقیقا این متن ست نمیشه و برنامه خطا میده");
                                    }
                                }
                            });
                                        
                        }




                    });



                }
            }
        };
        new Thread(runnable).start();
    }

    // Simulating something timeconsuming
    private void doFakeWork() {
        try {
            Thread.sleep(35);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

}

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر
نقل قول

 
@Override
public void run() {
////// این قسمت رو اضافه کنید
runOnUiThread(new Runnable() {
@Override
public void run() {
String Message = String.valueOf(value);
prg1.setProgress(value);
if (value==100){
textCounter.setText("دقیقا این متن ست نمیشه و برنامه خطا میده");
}
}
});

درود بر شما

با اضافه کردن این قسمت دیگه مقدار value رو داخل if نمیشناسه و قرمز میشه !!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

value  رو باید به صورت یک متغیر سرتاسری تعریف کنید. بالای onCreat ،  متغییر value رو تعریف کنید درست می شه...

public class MainActivity extends AppCompatActivity {
 ProgressBar prg1;
 TextView textCounter;
     int value;                         /// <<<<<<< اینجا تعریف میشه
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        prg1=findViewById(R.id.progressBar);
        textCounter=findViewById(R.id.text);
        startProgress();
    }

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خیلی کارت درسته بزرگوار (حق با شماست من توی بستن قسمت ها با {} اشتباه کرده بودم)

 

کد نهایی : 

    public void startProgress(View view) {
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i <= 100; i++) {
                    final int value = i;
                    doFakeWork();
                    prg1.post(new Runnable() {
                        @Override
                        public void run() {
                            prg1.setProgress(value);
                      
//--------------------------------------------------------------------------------------------------------------------------
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {
                              //===
                                    if (value == 100){
                                        try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}
                                        textCounter.setText("متن مورد نظر یا هر کد دیگری");
                                        prg1.setVisibility(View.INVISIBLE);
                                        Btn_End_Work.setEnabled(false);
                                    }
                              //===
                                }
                            });
//--------------------------------------------------------------------------------------------------------------------------
                        }
                    });
                }
            }
        };new Thread(runnable).start();
    }

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 52 دقیقه قبل، davod56 گفته است :

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

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

لطفا در مورد این بیشتر توضیح بدید/

ممنون و سپاس از لطفتون

لینک ارسال
به اشتراک گذاری در سایت های دیگر
در 6 دقیقه قبل، AtrinPC گفته است :

لطفا در مورد این بیشتر توضیح بدید/

ممنون و سپاس از لطفتون

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

 

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

موافق باشید.

Capture.PNG

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

  • مطالب مشابه

    • توسط elecomco
      آیا می‌خواهید برنامه اندروید بعدی خود را بسازید ، اما مطمئن نیستید که کدام زبان برنامه‌نویسی برای شما بهترین انتخاب است؟ در این مقاله به زبان هایی خواهم پرداخت که برای توسعه برنامه های اندروید بعدی ممکن است از آنها استفاده کنم.
      اندروید پذیرفته ترین سیستم عامل موبایل در جهان است. اندروید توسط گوگل توسعه داده شد و یک سیستم‌عامل باز مبتنی بر لینوکس است. اندروید کاملا متن باز است و هر شرکت یا فردی می‌تواند آن را دانلود کرده و از آن برای محصولات خود استفاده کند. در اصل ، این سیستم عامل از طریق شرکت اندروید برای دوربین‌های دیجیتال و موبایل طراحی شد. شرکت اندروید در سال ۲۰۰۵ توسط گوگل خریداری شد. در حال حاضر ، ۲.۳ میلیارد تلفن هوشمند اندروید در جهان وجود دارد.
      اندروید نه تنها از دو میلیارد تلفن هوشمند ، لپ‌تاپ ، تبلت  و کامپیوترهای شخصی پشتیبانی میکند ، بلکه اندروید قلب تپنده میلیاردها دستگاهی است که در زندگی روزمره خود از آنها استفاده می‌کنید. برخی از این وسایل عبارتند از: تلویزیون ، سیستم‌های امنیت خانگی ، یخچال و فریزر ، باکس های تلویزیونی ، دوربین ها ، ماشین ها ، سیستم‌های ناوبری ، تبلت های هوشمند ، بازی رایانه‌ای و وسایل خانگی هوشمند.
      چه زبان‌های برنامه‌نویسی می‌توانند برای توسعه برنامه‌های کاربردی تلفن همراه به کار روند؟ در اینجا لیستی از رایج‌ترین زبان‌های برنامه‌نویسی برای توسعه برنامه‌های اندروید آورده شده است : 
      Java Kotlin #C Python ++C
      جاوا
      زبان جاوا محبوب‌ترین زبان برنامه‌نویسی در این زمینه است. جاوا یک زبان برنامه‌نویسی استاتیک ، همه منظوره و متن باز است. جاوا از زمان راه‌اندازی سیستم‌عامل اندروید , زبان برنامه‌نویسی اولیه این سیستم عامل بوده است . جاوا در شرکت سان میکروسیستمز توسط James Gosling در سال ۱۹۹۵ ساخته شد. این زبان برنامه نویسی در حال حاضر متعلق به اوراکل است.
      جاوا براساس ++c  ساخته شد تا یادگیری آن برای توسعه دهندگان ساده باشد. این زبان همراه با ++c بهترین زبان‌های برنامه‌نویسی برای دانشجویان و افراد تازه کار برای یادگیری اصول برنامه‌نویسی هستند. زبان جاوا توسط بسیاری از دانشگاه‌ها به عنوان اولین زبان برنامه‌نویسی برای آموزش به دانشجویان استفاده میشود.
      برخلاف زبان های سوئیفت، سی شارپ و کاتلین ممکن است جاوا زبان برنامه‌نویسی مدرنی نباشد و مانند زبان های دیگر مدام بروزرسانی نشود. با این حال , زبان جاوا نقطه شروعی را برای توسعه دهندگان جدید مشخص میکند. یادگیری زبان جاوا در مقایسه با کاتلین بسیار ساده‌تر است. اگر یک توسعه دهنده تازه کار هستید و میخواهید توسعه اندروید را یاد بگیرید , جاوا یکی از آسان‌ترین راه‌ها برای شروع است.
      کاتلین
      کاتلین یک زبان برنامه‌نویسی مدرن , دقیق , ایمن , شی گرا و سازگار با همه ی پلتفرم هاست که توسط یک شرکت نرم‌افزاری به نام JetBrains در سال ۲۰۱۱ ساخته شده‌است. این زبان برای ساخت نرم‌افزارهای کاربردی , برنامه های اندروید و برنامه‌های بومی استفاده می‌شود. در حال حاضر گوگل توسط شرکت گوگل پشتیبانی میشود.
      زبان کاتلین از زمان انتشار Android Studio ۳,۰ در اکتبر سال ۲۰۱۷  به عنوان زبان برنامه‌نویسی رسمی برای اندروید استفاده شده‌است. این زبان برای طراحی برنامه‌های کاربردی ، ساخت اپلیکیشن های مدرن و ارائه قابلیت‌های جدید برای توسعه دهندگان طراحی شده است. کاتلین برای شما سادگی , انعطاف‌پذیری و بهره‌وری را فراهم می آورد.
      کد های نوشته شده در این زبان نسبت به زبان جاوا کوتاه تر و تمیز تر است. برای پروژ های اندروید بعدی شدیدا ً توصیه می‌کنم که از این زبان استفاده کنید . 
      #C
      زبان #C توسط Anders Hejlsberg در مایکروسافت در سال ۲۰۰۰ ایجاد شد. سی شارپ یک زبان برنامه‌نویسی ساده ، انعطاف‌پذیر ، ایمن ، و متن باز است. این زبان یکی از پراستفاده ترین زبان‌های برنامه‌نویسی در جهان است. سی شارپ به توسعه‌دهندگان اجازه می‌دهد تا تمام برنامه‌های کاربردی از قبیل ویندوز ، کنسول‌ها ، برنامه‌های وب ، برنامه‌های موبایل ، و سیستم‌های backend را بسازند.
      برنامه نویسان سی شارپ می‌توانند برنامه‌های کاربردی ios و اندروید را با کمک Xamarin بسازند . Xamarin به عنوان بخشی از ویژوال استادیو ابزاری است که به توسعه دهندگان اجازه میدهد کدهای سی شارپ خود را به برنامه های بومی اندروید و یا ios تبدیل کنند. سی شارپ طراحان را قادر می‌سازد که برنامه‌های کاربردی ios بومی و اندروید را بدون آگاهی از یک زبان برنامه‌نویسی جدید بسازند.
      پایتون
      پایتون یکی از رایج‌ترین زبان‌های برنامه‌نویسی زمانه اخیر است. پایتون که توسط Guido van Rossum در سال ۱۹۹۱ ایجاد شد. این زبان متن باز ، سطح بالا و همه منظوره است. پایتون یک زبان برنامه‌نویسی پویا است که از پارادایم‌های توسعه شی گرا ، تابعی و رویه‌ای پشتیبانی می‌کند. این زبان در برنامه‌نویسی یادگیری ماشین بسیار محبوب است. در توسعه نرم‌افزار های اندروید ، پایتون جهت ایجاد کتابخانه‌ها ، توابع ، و دیگر وظایف پردازش به کار می‌رود .
      ++C
      ++C یکی از قدیمی‌ترین و محبوب‌ترین زبان‌های برنامه‌نویسی است. ++C برای ساختن رابط های کاربری یا صفحات برنامه استفاده نمی‌شود. در فرآیند توسعه اندروید ، ++C برای ساختن API ها و وظایف backend استفاده می‌شود. توسعه دهندگان front end درگیر توسعه ++C نیستند ، بلکه کارکرد این زبان بیشتر مربوط به API هاست که مربوط به بخش back-end است. کتابخانه های معروفی در + +C  وجود دارند که برای توسعه دهندگان Android در دسترس هستند و میتوانند از آنها در برنامه های خود استفاده کنند.

      نتیجه‌گیری
      اندروید رایجترین سیستم‌عامل در دنیا است. برای ساخت اپلیکیشن اندروید از دو زبان برنامه‌نویسی اصلی یعنی جاوا و کاتلین استفاده شده‌است. در حالی که زبان برنامه‌نویسی جاوا یک زبان برنامه‌نویسی قدیمی است اما زبان کاتلین یک زبان سریع واضح و در حال تکامل است. اگر شما یک توسعه دهنده جدید هستید و به تازگی می‌خواهید توسعه برنامه های اندرویدی را شروع کنید، پیشنهاد من به شما زبان کاتلین است.
             
    • توسط rezanasarzade
      با سلام عرض ادب خدمت کاربران انجمن و تبریک سال 99
      بنده مشکل sdk دارم لطفا راهنمایی کنید . با تشکر
       
       




    • توسط irmacfa
      دوستان من تازه کار هستم میخواستم بپرسم برای شروع کار با اندروید استودیو اگر آخرین ورژن برنامه رو نصب کنم مشکلی نداره ؟ 
      بعد اینک پک کامل اندروید SDK هم دانلود کردم چطور بهش وصلش کنم ؟
       
      دانلود اندروید استودیو
       
    • توسط mostafa5709
      سلام
      من تا امروز هنگام ران گرفتن اندروید استودیو از گوشی استفاده می کردم ولی نمی دونم چی شد دیگه هنگام ران گوشی رو دیگه تشخیص نمیده.
      قبلش تنظیمات مربوط به تلفن هم انجام داده بود .
      از طریق usb گوشی رو به کامپیوتر وصل می کردم
       
      لطفا کمک کنید
      اجرا و دیباگ پروژه اندروید بر روی دیوایس واقعی
       
    • توسط AVM
      سلام
      من بعد تز مدتی برنامه اندروید استودیو 3.3.2 را نصب کردم ولی نمیتونم پروژه خودم و اجرا کنم هم در دیوایس مجازی هم در دیوایس خارجی ولی هیچ کدوم نشد 
      با این ارورر ها مواجه میشه

  • فایل

×
×
  • اضافه کردن...