تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ محسن موسوی
مشکل crash کردن
جامعه جاوا (اندروید) ایجاد شده در ۱۰ اردیبهشت ۱۴۰۱

سلام.من تمام مراحل رو با توجه به فیلمی که لینکش رو فرستادید در مورد registerforActivityResult انجام دادم.همه مراحل هم درست پیش میره اما وقتی روی don کلیک می‌کنم در شبیه ساز،از اپ میپره بیرون.

خط اخر که(textview.setText(data)) هست را پاک می‌کنم مشکل پرت شدن بیرون حل میشه اما متن ثبت نمیشه در textview.

13f9-IMG-20220430-WA0070.jpg

سلام امیدوارم عالی باشید

میشه اون ویدیویی که دیدید و طبق اون مراحل رو رفتین لینکش رو ارسال کنید ؟

و چرا طبق ویدیو اموزش سون لرن پیش نرفتید ؟

پوریا شفیعی ۱۱ اردیبهشت ۱۴۰۱، ۰۶:۰۷

https://youtu.be/DfDj9EadOLkاین لینک فیلم هستش.دلیل اینکه این قسمت را تا حدودی با سون لرن پیش نرفتم این بود که متود startActivity و startActivityforResult منقضی شدن و اصلا در برنامه من این‌ها را پیدا نمی‌کرد و خطا میداد.

اومدم سوال‌های قبلی رو نگاه کردم دیدم شما گفتید این متود با registerforActivityResult جایگزین شده.من هم در همین باره توی youtube سرچ کردم و...



محسن موسوی ۱۱ اردیبهشت ۱۴۰۱، ۰۹:۳۱

محسن جان با اموزش قبلی ادامه بدید این دو سه جلسه ای که متد هاشون دیپریکیت شدن به زودی قرار هست براشون جلسات جدید ضبط بشه

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


در هر حال

راه حل قدیمی :

public void openSomeActivityForResult() {
    Intent intent = new Intent(this, SomeActivity.class);
    startActivityForResult(intent, 123);
}
@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data) {
    if (resultCode == Activity.RESULT_OK && requestCode == 123) {
        doSomeOperations();
    }
}

راه حل جدید :

public void openSomeActivityForResult() {
    Intent intent = new Intent(this, SomeActivity.class);
    someActivityResultLauncher.launch(intent);
}
// You can do the assignment inside onAttach or onCreate, i.e, before the activity is displayed
ActivityResultLauncher someActivityResultLauncher = registerForActivityResult(
        new ActivityResultContracts.StartActivityForResult(),
        new ActivityResultCallback() {
            @Override
            public void onActivityResult(ActivityResult result) {
                if (result.getResultCode() == Activity.RESULT_OK) {
                    // There are no request codes
                    Intent data = result.getData();
                    doSomeOperations();
                }
            }
        });


استک اور فلو : لینک

بهترین پاسخ
پوریا شفیعی ۱۱ اردیبهشت ۱۴۰۱، ۱۳:۰۶