انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
خطا بعد از به اشتراگذاری عکس

خطا بعد از به اشتراگذاری عکس

#1
سلام
من با کد موجود در کلید زیر عکس رو به اشتراک میگذارم.
http://www.kelidestan.com/keys/keys.php?key=357

در بیشتر مواقع بعد از ارسال عکس با یک برنامه مثل وایبر، بعد فشار دادن کلید back برنامه ارور میده و دوباره اجرا میشه.
(در خط is = this.getResources().openRawResource(R.drawable.image_1); به کلمه this خطا میداد که حذفش کردم)

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

خطا بعد از به اشتراگذاری عکس

#2
متوجه شدم که کد موجود مشکلی نداره
مشکل اینجاست که وقتی از برنامه من به برنامه دیگه میریم بعضی از متغییرها مقدارشون رو از دست میدن، وقتی که بر میگردیم برنامه با توجه به این متغییرها اجرا میشن و چون مقدار وجود نداره برنامه خطا میده
کسی میدونه که باید چی کار کنیم تا مقادیر از بین نرن؟ با متدهای مرتبط با Lifecycle نمیشه کاری کرد؟
پاسخ

خطا بعد از به اشتراگذاری عکس

#3
سلام دوست عزیز
من یه برنامه داشتم که چند تا اکتیویتی داشت و تو هر صفحه یه عکس بود و می خواستم عکس ها رو با زدن دکمه به اشتراک بذارم
از همین کدی که شما لینکشو گذاشتید استفاده کردم و کل کد رو تو اکتیویتی های مورد نظر کپی کردم و نام image_ رو به نام تصویرم تغییر دادم و همچنین کد یک دکمه رو به داخل کد اضافه کردم. و اشتراک گداری کار کرد ولی بعد متوجه شدم که هر عکسی رو که می دیدم هر بار به یک نام با پسوندimage_ ذخیره می شد که تعداد عکس ها در گالری زیاد شده بود
بعد این کد رو تغییر دادم تا درست شد
String fileName = "Image-"+ n +".jpg";
تبدیلش کردم به
String fileName = "a1" +".jpg";
a1هم نام تصویر بود یعنی هر بار که تصویر را ببینم عکس بصورت اتوماتیک در حافظه گوشی ذخیره میشه ولی دیگه این بار میره جای a1 قبلی و حافظه گوشی پر نمیشه

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

البته اگه روش شما برای نمایش عکس مثل من بوده باشه این چیزایی که گفتم به دردتون میخوره
موفق باشید
 
پاسخ
 سپاس شده توسط admin

خطا بعد از به اشتراگذاری عکس

#4
سلام

البته میتونید جهت ذخیره و بارگذاری اطلاعات در برخی از LifeCycleActivity از توابع onSaveInstanceState و onRestoreInstanceState استفاده کنید

@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable("rowData", mRowData);

}

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);

ArrayList<PaymentInfo> rowData =
(ArrayList<PaymentInfo>)
savedInstanceState.getSerializable("rowData");
if (rowData != null) {
mRowData = rowData;
for(PaymentInfo info: rowData) {
addRow(info);
}
}

اطلاعات مربوط به widget ها به صورت خودکار توسط این توابع ذخیره و بارگذاری میشه
پاسخ
 سپاس شده توسط شماره مجازی امارات


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان