a.khosroabadi

مدیر انجمن
  • تعداد ارسال ها

    193
  • تاریخ عضویت

  • آخرین بازدید

  • Days Won

    35

تمامی ارسال های a.khosroabadi

  1. سلام روز بخیر امکانش نیست وقتی. وقتی clear data میزنه اطلاعات از رو گوشی حذف میشه.نمیشه جلوشو گرفت. راهش این هستش زمانی که میخواد ثبت نام کنه دوباره اطلاعاتشو روی سرور چک کنید و اگه از قبل ثبت نام کرده بود لاگین کنید و دیتا هارو دوباره ست کنید. و یا اینکه یک دکمه لاگین هم بزارید که اگه برنامه رو پاک کرد یا clear data کرد بتونه لاگین کنه مجددا.
  2. سلام دوست عزیز باید یک فیلد flag داشته باشید که با هربار کلیک روی دکمه چک کنه اونو و بر اساس اون یک فعالیتی انجام بده من یک مثال کوچیک میزنم boolean btnFlage = true; btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(btnFlage){ // do action 1 btnFlage = false; }else{ // do action 2 btnFlage = true; } } });
  3. سلام شما باید یک کوئری ادیتور بنویسید که بر اساس فیلد هایی که مقدار گرفتن قسمت where کوئری رو بسازه. منطقی ترین روش این هستش برای مثال private String getCondition(Map<String , Object> params){ StringBuilder condition = new StringBuilder(); if(params.get("name")) condition.append(" NAME=")+params.get("name").toString()+" And "; if(params.get("family")) condition.append(" FAMILY=")+params.get("family").toString()+" And "; if(condition.contain("AND") condition.substring(0,condition.lasIndexOf("And")); if(condition.length()>0) condition.insert(0 , " where "); return condition; } البته این یه نمونه خیلی کوچک و ساده بود و البته به زبان جاوا. میتونید از همچین روشی استفاده کنید
  4. سلام دوست عزیز باید یک تایمر بزارین وست کنید که هر 5 دقیقه یکبار مکان رو بگیره
  5. گوشیتون زمانی که به کامپیوتر وصل باشه و روش اجرا بگیرید تو logcat خطارو چاپ میکنه
  6. سلام دوست عزیز خوب دلایل زیادی وجود داره و انواع برنامه های مختلف زمانی که یه کاربر اطلاعاتشو وارد میکنه شما کجا میخواین نگه دارین؟مصلما باید از دیتابیس استفاده بشه. و اگه منظورتون برنامه هایی مثل کتاب و غیره هستش خوب اونم دلایل زیادی داره که خوب اولا نگه داری از کدتون خیلی راحتتر میشه (مثالش میشه اینکه اگه قرار باشه 1 متنی مطلبی تغییر بدین باید ببینید کجاها استفاده شده و تغییرش بدین در صورتی که اگه از دیتابیس استفاده کرده باشید به راحتی میتونید این کارو بکنید و برای اضافه کردن مطلب جدید هم به همین صورت)، دوما کدهاتون تمیزتره، و حجم برنامتون میتونه خیلی کمتر بشه (برای مثال شما اگه قرار باشه 10 تا صفحه داشته باشید با روش شما باید 10 تا لایوت و تو هر لایوت هر صفحه رو تعریف کنید. ولی با استفاده از دیتابیس شما 1 صفحه میزارید و هر مطلبی که خواستین از دیتابیس میخونید و نشون میدین).
  7. سلام دوست عزیز لطفا خطایی که میده بزارین تا بشه نظر داد به چه دلیلی متوقف میشه روی ورژن های پایینتر
  8. خوب فقط کافیه مقدار بازگشتی متد showName تغییر بدین و چیزی که میخواین بزارین مثلا اگه قراره Integer برگرده بزارین public interface message { public Integer showName(int name); }
  9. oneSignal بدون محدودیت هستش و تحریمی نیست.
  10. سلام دوست عزیز برای سرویس پوش نوتیفیکیشن میتونید از oneSignal استفاده کنید رایگان هستش و خدمات خیلی خوبی داره
  11. سلام دوست عزیز خوب مشکلتون مشخصه شما تو این قسمت int fragment_number; int a = fragment_number; فقط اومدین دوتا متغییر تعریف کردین ولی هیچ مقداری بهش ست نکردین و خوب مسلما این قسمت همیشه خالی هستش. چون نه از جایی مقدار گرفته نه مربوط به یک کلاس یا اینترفیس دیگه هستش که مقدار داشته باشه.صرفا یک متغییر محلی خالی. ولی قسمت پایین شما اومدین متد showName رو override کردین که میاد مقدار name که بهش میدین میگیره و به fragment_number میده. کد شما به درستی داره کار میکنه از لحاظ منطقی. هدف شما از این که به این صورت نوشتین چی بوده و قرار بوده چه کاری انجام بدین؟
  12. سلام دوست عزیز با چیزی که شما تعریف کردین و من متوجه شدم بهترین گزینه ذخیره اطلاعات سمت سرور هستش به چند دلیل 1- همیشه جدیدترین بوتیک های اضافه شده در دسترس هستش 2- ممکنه شما بخواهید گزینه های دیگه ای هم اضافه کنید بعدا که انلاین بودن بهتون کمک میکنه.ذخیره شدن دیتا ها روی گوشی به نظر کار چندان جالبی نمیاد البته گاهی وقتا مجبورین برای بعضی قسمت ها این کارو بکنید و یکسری دیتا های کوچیکو نگه دارین. ولی همه چی سمت سرور باشه خیلی بهتر هستش.
  13. سلام این یک آموزش فارسی http://kamalan.com/1392/01/طریقه-دانلود-google-api-برای-توسعه-برنامه-های-ا/ این هم آموزش انگلیسی http://www.vogella.com/tutorials/AndroidLocationAPI/article.html http://www.vogella.com/tutorials/AndroidGoogleMaps/article.html
  14. سلام این یک آموزش فارسی http://kamalan.com/1392/01/طریقه-دانلود-google-api-برای-توسعه-برنامه-های-ا/ این هم آموزش انگلیسی http://www.vogella.com/tutorials/AndroidLocationAPI/article.html http://www.vogella.com/tutorials/AndroidGoogleMaps/article.html
  15. سلام دوست عزیز زمانی که گوشی به کامپیوتر وصل هستش لطفا تست کنید و پیغام خطارو بزارین تا بشه راهنمایی کرد
  16. سلام دوست عزیز به این صورت عمل کنید android:maxLines="4" android:singleLine="false" اینارو برای TextView بزارین
  17. به راحتی. زمانی که ثبت موفقیت آمیز بود در ادامه کدهای مربوط به نوتیفیکیشن میاد و در صورتی که ثبت با مشکل مواجه شد برای کاربر یک پیغام (خطا در ثبت اطلاعات) فرستاده میشه.
  18. اندروید استودیو

    نه ربطی به این موضوع نداره شما تو تنظیمات اپلیکیشن مشخص مینید که حداقل ورژن اندروید(minSdk) که ساپورت میکنه چند باشه
  19. اندروید استودیو

    خیر دوست عزیز ایرادی نداره و درست هستش
  20. سلام دوست عزیز باید از spans استفاده کنید به این صورت final SpannableStringBuilder sb = new SpannableStringBuilder("your text here"); // Span to set text color to some RGB value final ForegroundColorSpan fcs = new ForegroundColorSpan(Color.rgb(158, 158, 158)); // Span to make text bold final StyleSpan bss = new StyleSpan(android.graphics.Typeface.BOLD); // Set the text color for first 4 characters sb.setSpan(fcs, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE); // make them also bold sb.setSpan(bss, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE); yourTextView.setText(sb); این هم یک آموزش دیگه https://blog.stylingandroid.com/introduction-to-spans/
  21. اندروید استودیو

    سلام دوست عزیز خیر مشکلی نداره خیلی هم خوب هستش. زمانی که اندروید استودیو برای اولین بار اجرا کنید مسیر sdk باید بهش بدین
  22. راستش کتاب نمیدونم ولی شما باید چندتا تا موضوع سرچ کنید و بخونید راجع بهش پرفورمنس در اندروید پرفورمنس در جاوا مالتی تردینگ کالکشن ها در جاوا
  23. خواهش میکنم دوست عزیز مبحث پرفورمنس خیلی گسترده هستش و جا برای صحبت و مطالعه زیاد داره
  24. سلام دوست عزیز سوالتون خیلی کلی هستش و جای بحث زیادی داره بزارین به ترتیب بریم جلو. اول از همه اینکه کدهارو زیر هم بنویسید یا از متد ها یا کلاس های جداگونه استفاده کنید تاثیر چندانی روی پرفرمنس نداره ولی در آینده برای دیباگ کردن یا تغییر دادن و گسترش یا کم کردن ویژگی های برنامه تاثیر زیادی داره زمانی که شما تمام کدهارو زیر هم بنویسید بعد یک مدت میبینید یک کد پیچیده زیاد و کثیف دارین که به اصطلاح میگیم اسپاگتی کد و در آینده با مشکلات زیادی رو به رو میشید.ولی جدا کردن کد ها استفاده از design pattern ها و مفاهیم شی گرایی و solid باعث تمیز شدن خوانا شدن و همینطور راحتتر شدن نگهداری کد میشه. حالا بریم سراغ پرفرمنس تو لایه گرافیکی و رندر لایوت ها ببینید 2 تا عامل باعث میشه سرعت شما بره بالا 1- overdraw که مفهومش این هستش که شما وقتی وارد یکی از اکتیویتی ها میشین تو گوشی و دارین یک صفحه رو نگاه میکنید هر پیکسل چند بار رنگ میگیره.که این تعداد دفعات هرچی کمتر باشه تاثیر میزاره تو سریعتر رندر شدن صفحات. 2- hierarchies. منظور اینه اگه شما اکتیویتی یا فرگمنت هاتونو به صورت یک درخت در نظر بگیرین این درخت چند لایه داره و از روت تا برگ ها. هرچی تعداد لایه ها کمتر باشه پرفورمنس بهتری داره. یه راحکار این هستش که هرچی کمتر از linear layout استفاده کنید بهتره. در کل relative layout و constraint layout پرفورمنس بهتری از بقیه دارند. بعد از این ها بریم سراغ کد نویسی جایی که نیاز به تجربه و دانش بیشتری داره. این هم دو قسمت داره cpu و memory اول بریم سراغ memory ساخت ابجکت ها و از بین بردنشون خیلی مهمه اینکه درست ابجکت هارو بسازیم تا فقط در زمانی که نیاز دارین ساخته بشه و بعد از اینکه کارمون باهاش تموم شد از بین بره. از چه نوع متغییر هایی استفاده کنیم تا نیاز مارو برطرف کنه و حافظه کمتری بگیره از چه نوع داده ای استفاده کنید Object ها مثل ( Integer , Long , ... ) یا نوع داده پایه (int , long , ....) حالا بریم سراغ cpu اینجا جایی هستش که هنر کدنویسی و تجربه و دانش وارد میشه کدها باید با دقت نوشته بشه تا پردازش اضافی نداشته باشه و از پردازش ها و محاسبات اضافی خودداری کنید انتخاب مناسب ایتم هایی مثل List , ArrrayList , Map , HashMap , Set , HashSet , .... که اینجا باید کمی مطالعه داشته باشید و با خواص هرکدوم آشنا باشید مثلا بعضی از این ها مرتب هستند بعضی ها نا مرتب تو بعضی سرعت خواندن ازشون بالاتره تو بعضی هاشون سرعت نوشتن. بعضی هاشون سرچ داخلشون سریعتره و .... که باید با هرکدوم از اینها آشنایی داشته باشید و با توجه به کاربردتون ازش استفاده کنید. و خوب در نهایت میرسیم به مبحث multithreading که پیچیدگی های خودشو تو اندروید داره استفاده اشتباه و زیاد ازش باعث میشه که به جای سرعت بالاتر نتیجه معغیر مجاز بگیرید و برنامتون کندتر بشه. باید بدونید کجا از Thread یا Asynctask یا Looder , .... استفاده کنید و مزایا و معایب هرکدومو بدونید. ببخشید یکم طولانی شد البته به شدت سعی کردم خلاصه بگم (خیلی خیلی خیلی خلاصه) و این مبحث هنوووز ادامه دارد و جای بحث زیاد .......
  25. سلام دوست عزیز به این صورت عمل کنید SELECT DISTINCT column_list FROM table;