برترین های انجمن

  1. Farzad Sarseifi

    Farzad Sarseifi

    مدیریت انجمن


    • امتیاز: پسندیدن (Likes)

      27

    • تعداد ارسال ها

      2,164


  2. mehrdadmmb2

    mehrdadmmb2

    توسعه دهنده اندروید


    • امتیاز: پسندیدن (Likes)

      8

    • تعداد ارسال ها

      95


  3. a.khosroabadi

    a.khosroabadi

    مدیر انجمن


    • امتیاز: پسندیدن (Likes)

      6

    • تعداد ارسال ها

      208


  4. شاهرخ جهان زاده

    شاهرخ جهان زاده

    مدیر انجمن


    • امتیاز: پسندیدن (Likes)

      5

    • تعداد ارسال ها

      87



Popular Content

Showing most liked content since ۱۷/۱۲/۱۷ in پست ها

  1. 5 likes
    دانلود Build Tools 26.0.2 برای اندروید استودیو 3 یکی از ابزهای مورد نیاز برنامه نویسان اندروید در ورژن 3 اندروید استودیو داشتن build tools 26.0.2 میباشد که در اندروید استودیو 3 موجود نمیباشد و باید بطور جداگانه دانلود شده و در فولدر build tools اندروید استودیو قرار داده شود دریافت از انجمن اندروید ایران 26.0.2.zip
  2. 5 likes
    با سلام در این تاپیک با نحویه کد و دیکد کردن اطلاعات بین اندروید وسرور آشنا میشوید و میتوانید اطلاعات رو به صورت امن بین کلاینت و سرور رد و بدل کنید. اول این کلاس php را به سرور اضافه کنید <?php class MCrypt { private $iv = 'fedcba9876543210'; #Same as in JAVA private $key = '0123456789abcdef'; #Same as in JAVA function __construct() { } function encrypt($str) { //$key = $this->hex2bin($key); $iv = $this->iv; $td = mcrypt_module_open('rijndael-128', '', 'cbc', $iv); mcrypt_generic_init($td, $this->key, $iv); $encrypted = mcrypt_generic($td, $str); mcrypt_generic_deinit($td); mcrypt_module_close($td); return bin2hex($encrypted); } function decrypt($code) { //$key = $this->hex2bin($key); $code = $this->hex2bin($code); $iv = $this->iv; $td = mcrypt_module_open('rijndael-128', '', 'cbc', $iv); mcrypt_generic_init($td, $this->key, $iv); $decrypted = mdecrypt_generic($td, $code); mcrypt_generic_deinit($td); mcrypt_module_close($td); return utf8_encode(trim($decrypted)); } protected function hex2bin($hexdata) { $bindata = ''; for ($i = 0; $i < strlen($hexdata); $i += 2) { $bindata .= chr(hexdec(substr($hexdata, $i, 2))); } return $bindata; } } و بعد از اون این کلاس جاوا رو به پروژه خودتون اضافه کنید import java.security.NoSuchAlgorithmException; import javax.crypto.Cipher; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; public class MCrypt { private String iv = "fedcba9876543210";//Dummy iv (CHANGE IT!) private IvParameterSpec ivspec; private SecretKeySpec keyspec; private Cipher cipher; private String SecretKey = "0123456789abcdef";//Dummy secretKey (CHANGE IT!) public MCrypt() { ivspec = new IvParameterSpec(iv.getBytes()); keyspec = new SecretKeySpec(SecretKey.getBytes(), "AES"); try { cipher = Cipher.getInstance("AES/CBC/NoPadding"); } catch (NoSuchAlgorithmException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchPaddingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public byte[] encrypt(String text) throws Exception { if(text == null || text.length() == 0) throw new Exception("Empty string"); byte[] encrypted = null; try { cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec); encrypted = cipher.doFinal(padString(text).getBytes()); } catch (Exception e) { throw new Exception("[encrypt] " + e.getMessage()); } return encrypted; } public byte[] decrypt(String code) throws Exception { if(code == null || code.length() == 0) throw new Exception("Empty string"); byte[] decrypted = null; try { cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec); decrypted = cipher.doFinal(hexToBytes(code)); } catch (Exception e) { throw new Exception("[decrypt] " + e.getMessage()); } return decrypted; } public static String bytesToHex(byte[] data) { if (data==null) { return null; } int len = data.length; String str = ""; for (int i=0; i<len; i++) { if ((data[i]&0xFF)<16) str = str + "0" + java.lang.Integer.toHexString(data[i]&0xFF); else str = str + java.lang.Integer.toHexString(data[i]&0xFF); } return str; } public static byte[] hexToBytes(String str) { if (str==null) { return null; } else if (str.length() < 2) { return null; } else { int len = str.length() / 2; byte[] buffer = new byte[len]; for (int i=0; i<len; i++) { buffer[i] = (byte) Integer.parseInt(str.substring(i*2,i*2+2),16); } return buffer; } } private static String padString(String source) { char paddingChar = ' '; int size = 16; int x = source.length() % size; int padLength = size - x; for (int i = 0; i < padLength; i++) { source += paddingChar; } return source; } } حا الا که کلاس های بالا رو به پروژه و سرور اضافه کردید نوبت میرسه به رد بدل کردن اطلاعات میشه برای وارد کردن کلاس php به فایل های php از include استفاده کنید به این صورت توجه کنید که لاس در کنار فایل ها باید باشه و گر نه باید مسیر کامل رو هم بدید include('myclass.php'); توی دو کلاس دو متغییر وجود دارند که باید در هر دو کلاس متغییر (دو متغییر در جاوا و دوتا در سمت سرور ) شبیه به هم باشند و گر نه شناسای مقادیر کد شده مشکل و عملا دیکد نمیشوند این متغییر ها قدرت کد شدن داده رو افزایش می دهند متغییر ها در جاوا private String iv = "fedcba9876543210";//Dummy iv (CHANGE IT!) private String SecretKey = "0123456789abcdef";//Dummy secretKey (CHANGE IT!) متغییر ها در سمت php private $iv = 'fedcba9876543210'; #Same as in JAVA private $key = '0123456789abcdef'; #Same as in JAVA خب کد و دیکد کردن مقدار در جاوا رو به این صورت تعریف میکنیم اول میای یک شیئ از کلاس ایجاد میکنیم mcrypt = new MCrypt(); اول کد اطلاعات رو کد میکنیم بعد مقادیر رو به صورت bytesToHex در یک متغییر قرار میدیم و بعد به وسیله encrypt مقدار رو کد میکنیم (این مقدار کد شده هستش) String encrypted = MCrypt.bytesToHex( mcrypt.encrypt("Text to Encrypt") ); برای دیکد کردن کافیه متغیر رو به درون تابع decrypt قرار بدیم String decrypted = new String( mcrypt.decrypt( encrypted ) ); کا ما در سمت اندروید تموم شد و مقدار کد و دیکد کردیم کد های تکمیلی جاوا mcrypt = new MCrypt(); /* Encrypt */ String encrypted = MCrypt.bytesToHex( mcrypt.encrypt("Text to Encrypt") ); /* Decrypt */ String decrypted = new String( mcrypt.decrypt( encrypted ) ); خب حالا سمت php باز میایم یک شیئ ایجاد میکنیم $mcrypt = new MCrypt(); ابتدا میایم مقدار رو کد میکنیم $encrypted = $mcrypt->encrypt("Text to encrypt"); سپس همون مقدار رو نیز دیکد میکنیم $decrypted = $mcrypt->decrypt($encrypted); کد های تکمیلی php $mcrypt = new MCrypt(); #Encrypt $encrypted = $mcrypt->encrypt("Text to encrypt"); #Decrypt $decrypted = $mcrypt->decrypt($encrypted); امید وارم آموزش مفیدی برای شما باشه من الله التوفیق
  3. 4 likes
    سلام دوست عزیز 1. بله میتونه از طریق همون فایل php باشه. و یا زبان های دیگه. 2. توکن یک شناسه منحصر به فرد هستش که بین گوشی و سرور قرار داده میشه برای تشخیص صحت درخواست ارسالی از سمت سرور. 3. تو کدهاتون (به زبان جاوا) سعی کنید یوزر و پسورد رو به صورت String قرار ندین. بهتره از Char[ ] استفاده کنید. 4. و اینکه توکن میتونید encrypt کنید و تو گوشی نگهدارین و البته برای ارتباط با سرور هم اطلاعات رو به صورت encrypt شده بفرستین. 5. برای دیکامپایل نشدن کدها یا سختتر شدن دیکامپایل فایل خروجیتون بهتره زمانی که apk میسازید حتما proguard رو فعال کنید
  4. 3 likes
    در این تاپیک آموزشی، از ابتدا آموزش برنامه نویسی اندروید را شروع خواهیم نمود ،یکی از مشکلات برنامه نویسان اندروید کم یا نبود آموزش های اصولی اندروید میباشد ،بر همین اساس تصمیم بر آن داشتیم بطور جامع آموزش های فارسی را منتشر نماییم . بیشتر کاربران انجمن برنامه نویسی اندروید، کم و بیش با این مشکل رو به رو بوده اند که به چه صورتی اندروید را شروع کنند و شروع به آموزش اندروید بگیرند.بر این اساس در این تاپیک بطور جامع آموزش های اندروید قرار داده خواهد شد.. این تاپیک آموزشی هر چند روز یکبار بروز رسانی خواهد شد و آموزش ها جدیدتر قرار داده خواهد شد منو در اندروید ذخیره سازی اطلاعات در اندروید فرگمنت و گوگل مپ در اندروید وب سرویس در اندروید آموزش های متریال دیزاین در اندروید آموزش های کاتلین : با تشکر انجمن برنامه نویسی اندروید-پی سی دروید
  5. 2 likes
    برای اینکار کتابخانه admob رو حذف کنید از برنامه تون بعلاوه کدهایی admobe که بدین صورت میباشند mInterstitialAd = new InterstitialAd(getApplicationContext()); // set the ad unit ID mInterstitialAd.setAdUnitId(getString(R.string.interstitial_full_screen_compass)); AdRequest adRequest = new AdRequest.Builder() .build(); // Load ads into Interstitial Ads mInterstitialAd.loadAd(adRequest); mInterstitialAd.setAdListener(new AdListener() { public void onAdLoaded() { showInterstitial(); } }); سپس به سایت عدد برید و اپلیکیشن خودتون رو ثبت کنید و از طریق آموزش های سایت عدد میتوانید تبلیغ را پیاده سازی کنید
  6. 2 likes
    بله باید به فایل gradle.properties اضافش کنید
  7. 2 likes
    سلام دوست عزیز برید داخل فایل gradle.properties و اینجا پروکسی هم برای http و هم برای https ست کنید به این صورت systemProp.http.proxyHost=localhost systemProp.http.proxyPort=51520 systemProp.https.proxyHost=localhost systemProp.https.proxyPort=51520 برای دانلود کتابخونه ها باید به https وصل بشید نه http پس پراکسی باید برای Https ست بشه تا تاثیر داشته باشه هاست و پورت وی پی ان خودتونو بزارین
  8. 2 likes
    String encodedHash = Uri.encode("#"); String ussd = "*" + encodedHash + lCallNum + encodedHash; startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + ussd)));
  9. 2 likes
    به تازگی گوگل در کنفرانس سال ۲۰۱۷ از ORM خود به نام Google Room رونمایی کرد که هدف این پست هم آموزش کار با این کتابخونه هست. فواید استفاده از Room بهبود امنیت دسترسی آسان پیاده سازی سریع تمام عملیات های اصلی DML به غیر از Select با استفاده از Annotation ها قابل استفاده می باشد البته دستور Select و دیگر کوئری های پیچیده را هم میتونید به راحتی پیاده سازی کنید. در ویدیو قسمت اول کار با سه کامپوننت اصلی Room یعنی DAO, Entityو Database و به همراه عملیات های مختلف یاد میگیریم. لینک دانلود مستقیم
  10. 2 likes
    به مناسبت دومین سالگرد انجمن برنامه نویسی اندروید پی سی دروید،آموزش گام به گام برنامه نویسی اندروید از پایه را آماده کرده ایم امید است بتوانیم سهمی کوچک در پیشرفت تمامی کاربران گرامی انجمن پی سی دروید را داشته باشیم. این فایل آموزشی در 80 صفحه و پنج فصل تدوین شده است سرفصل ها: معماری و ساختار سیستم عامل اندروید آموزش زبان جاوا Layout در اندروید آموزش کاربردی برنامه نویسی اندروید مارکتینگ اندروید لینک دانلود: http://p30droid.com/Uploader/do.php?id=528 با احترام فرزاد سرسیفی مدیر انجمن برنامه نویسی اندروید p30droid.com
  11. 2 likes
  12. 2 likes
    [align=center]سلام امروز با یک سورس کتاب اندرویدی فوق العاده با امکانات پیشرفته خدمت شما هستم. این سورس با حجم بسیار کم و سرعت بسیار بالا است و برای اندروید استودیو است و در ایکلیس اجرا نمی شود در ضمن قبل از ایمپورت کردن سورس در اندروید استودیو به ف*ی*ل*ت*ر* شکن وصل باشید تا کتابخانه های مورد نیاز را به صورت اتوماتیک دانلود کند.[/align] تصاویر : [align=center][/align] [align=center]http://i.stack.imgur.com/jtKC8.png[/img][/align] [align=center][/align] [align=center] لایک یادت نره http://p30droid.com/images/smilies/heart.gif[/img][/align] [align=center] دانلود سورس برای اندروید استودیو[/align]
  13. 2 likes
    آقای قلندری دستت درد نکنه که زحمت ترجمه کتاب آموزش مقدماتی اندروید رو داری می کشی . واقعا ازت ممنونم . آیا این ترجمه ها رو ممکنه در آینده بصورت فایل پی دی اف برای دانلود قرار بدین ؟
  14. 2 likes
    بالاخره اون کاری که من می خواستم دارید انجام می دید مرسی
  15. 2 likes
    یکی از امکاناتی که اندروید پیاده سازی شده AutoStartUp کردن اپلیکیشن میباشد بدین صورت وقتی که دیواس اندروید ریبوت یا روشن شد برنامه ما بصوت اتوماتیک اجرا شود. در این آموزش قصد داریم این امکان را پیاده سازی کنیم. ابتدا یک کلاس به نام BootUpReceiver را ایجاد میکنیم: public class BootUpReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Intent i = new Intent(context, Dashboard.class); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } در این کلاس ما از کلاس BroadcastReceiver ارث بری کرده و این کلاس باعث میشود در پس زمینه اجرا شود ، این کلاس باعث میشود همیشه در حال اجرا باشد. بعد از روشن شدن دیوایس باعث میشود اکتیویتی Dashboard باز شود. سپس در فایل اندروید مانیفست پروژه: <aplication> <receiver android:enabled="true" android:name=".BootUpReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> </aplication> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> انجمن پی سی دروید....
  16. 1 like
    بالاخره این ارور رو با جایگزین کردن کد زیر حل کردم < implementation 'com.android.support:appcompat-v7:22.2.1+' >
  17. 1 like
    شما دارید ماژول ایجاد میکنید و نه پروژه از این مسیر اقدام نمایید file->new->project
  18. 1 like
    سلام. آقا خدا خیرت بده سایتای خارجی گشتم نتونستم پیدا کنم. ممنون ازتون. در حال دانلود...
  19. 1 like
    به بنده پیغام بدید یک v p n معرفی کنم خدمتتون مشکلتون حل شود
  20. 1 like
    بله هیچ مشکلی ندارید و اندروید رو میتونید نصب کنید و فی ل تر شکن هم میتونید نصب کنید بنده مک دارم و هیچ مشکلی با توسعه اندروید را ندارم
  21. 1 like
    بسیار متشکرم. هم اکنون متوجه شدم.
  22. 1 like
    کتابخونه volley فقط برای ارتباط با سرور هستش و جستجو در دیتابیس باید با کدهای سمت سرور انجام بشه که گفته بودین Php هستش.باید سمت سرور یک وب سرویس برای جستجو بنویسید نمونه خیلی زیاد هستش کافیه یه سرچ بزنید https://www.simplifiedcoding.net/android-feed-example-using-php-mysql-volley/ https://www.android-examples.com/volley-user-registration/
  23. 1 like
    باید دانلود کنید . مگه اینکه پوشه Gradle رو بزارن و جایگیزین gradle خودتون کنید
  24. 1 like
    سلام برای این کار میتونید از TextWatcher استفاده کنید و برای ادیت تکست خودتون هم addTextChangedListener رو پیاده سازی کنید و متد سرچ و وب سرویستونو داخلش فراخوانی کنید تا با تغییر هر کاراکتر بره سمت سرور و جستجو کنه. البته دقت کنید حتما کدهاتون بهینه باشه چون میتونه رو پرفورمنس تاثیر بزاره و البته حتما از background thread استفاده کنید.
  25. 1 like
    شما باید ابتدا وب سرویس های سمت سرور را پیاده سازی کنید و سپس در سمت اندروید با کتابخانه های Volley,Retrofit میتوانید با آن ارتباط برقرار کنید
  26. 1 like
    اینجور مواقع باید یه اسکرین شات بدید
  27. 1 like
    vpn رو فعال کنید روی install کلیک کنید طبیعاتا باید خودش کار هارو انجام بده
  28. 1 like
    static : وقتی شما یک متغیر یا متد را static ایجاد میکنید بدون اینکه نیاز به new کردن کلاس مورد نظر داشته باشید میتوانید به مقدار متغیر و همچنین به متد دسترسی پیدا کنید final هم برای مقدار دهی یک متغیر میباشد که فقط یکبار میتوان به آن مقدار داد
  29. 1 like
    جواب هر سه تا سوال تو جواب هست 1- استاتیک مقدارش تو کل برنامه قابل خوندنه مثلا اول برنامه مقدارش یکه و 100 تا اکتیویتی باز و بسته میشه ام شما تو صفحه صدم هم میتونید این مقدار یک رو بخونید. مثال دیگه اینکه شما دارید با وب سرویس کار میکنید اول برنامه توکن میگیرید. چون توکن چیزیه که تو همه ی ریکوئست ها باید ارسال بشه همون اول میریزید تو یه نوع استاتیک و همه جا بهش دسترسی دارید. 2- فقط نیاز شما مشخص میکنه که کی و کجا باید از چی استفاده کنید 3- این جور کلاس ها و متغیر ها رم زیادی اشغال میکنن
  30. 1 like
    علت اینکه شما بدون گرفتن نمونه میتونید از کلاس های استاتیک استفاده کنید اینه که هرچیزی که شما از نوع استاتیک تعریف میکنید با شروع برنامه اونا هم اجرا میشن و درحافظه به صورت آماده به کار قرار میگیرن درحالی که بقیه ی کلاس ها فقط جایی که صدا زده میشن حافظه میگیرن و بعدش از حافظه خارج میشن اما نوع های استاتیک تا برنامه بازه اونا هم بازن به همین علت مثلا متغیری که از نوع استاتیک در اول برنامه مقداردهی کردین تا آخر برنامه هرجا خواستید میتونید صداش بزنید اما پاسخ سوال: همونطور که گفتم نوع استاتیک حافظه میگیره و اگر این کلاس هاتون زیاد بشن فضای زیادی از حافظه رو اشغال و در عملکرد برنامه تاثیر منفی دارن. فقط چیزایی رو استاتیک تعریف کنید که نیاز مبرم بهشون دارید
  31. 1 like
    سلام این هم اسکرین شات
  32. 1 like
    ارو بالای صفحه هم اینه gradle project sync. basic funcationality will not work properly
  33. 1 like
    نه مال من هردو تاش با هم یکی هستش و از اون لحاظ مشکلی نداره
  34. 1 like
    سلام منم اندرویید 3.0.1 رو نصب کردم همین مشکلو داشتم بعد نسخه build رو چک کردم 3.0.0 در صورتی ک buildمن 3.0.1 بود تغییرش دادم درست شد و الان مشکلی ک داره runاندرویید استودیو اصلا کار نمیکنه و هیچ اروری هم نداره ولی میتونم خروجی رو رو گوشی اجرا کنم
  35. 1 like
    خیلی گشتم پیداش نتونستم بکنم! ممنون از شما
  36. 1 like
    اگر از لیست ویو استفاده میکنی یه خاصیت smoothScrollToPosition داره من تاحالا از این کارا نکردم اما فکر کنم طول فایل صوتی رو نسبت به پوزیشن لیست ویو در نظر میگیرن و وقتی داره فایل صوتی جلو میره اسکرول آروم انجام میشه، دقیقشو چون انجام ندادم نمیدونم
  37. 1 like
    خب نکته اول اینکه وقتی مقدار دسته زیاد هست بهتره از لیست یا منو استفاده کنید بجای تب بیشتر از 7-8 تا تب خوب نیست نکته بعد اینکه فرض کنیم شما 1000 تا دسته دارید نیاز دارید فقط یک فرگمنت بسازید لازم نیست 1000 تا فرگمنت داشته باشید. توضیحات بیشتر https://stackoverflow.com/questions/45457599/how-to-create-dynamic-tabs-and-add-different-functionality-to-each-fragment-in-a
  38. 1 like
    باید از onScrollStateChenged استفاده کنید
  39. 1 like
    دقیقا... در واقع RecyclerView نسخه پیشرفته تر همون ListView هست که امکانات بیشتری رو در اختیارتون قرار میده...
  40. 1 like
    Floating action menu مفهومی جدید است که در برنامه های موبایل و وب سایت ها استفاده می شود. امروزه برخی سایت ها و برنامه های محبوب از Floating action menu از جمله صندوق ورودی استفاده می کنند. این برای اقدام سریع با گزینه های متعدد مانند آپلود عکس، ویدئو، نوشتن یادداشت و غیره استفاده می شود. Floating action menu برای یادداشت برداری کاربرد مفید است. در این آموزش، شما یاد می گیرید که Floating action menu را در برنامه خود اضافه / پیاده سازی کنید. ابتدا dependencies زیر را اضافه کنید: dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.0' compile 'com.android.support:design:23.1.0' compile 'com.github.clans:fab:1.6.2' } ساخت یک Layout به نام material_design_floating_action_menu.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:fab="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <com.github.clans.fab.FloatingActionMenu android:id="@+id/material_design_android_floating_action_menu" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_marginBottom="11dp" android:layout_marginLeft="11dp" android:layout_marginRight="11dp" fab:menu_animationDelayPerItem="55" fab:menu_backgroundColor="@android:color/transparent" fab:menu_buttonSpacing="0dp" fab:menu_colorNormal="#da3c2f" fab:menu_colorPressed="#dc4b3f" fab:menu_colorRipple="#99d4d4d4" fab:menu_fab_label="Floating Action Menu" fab:menu_fab_size="normal" fab:menu_icon="@drawable/fab_add" fab:menu_labels_colorNormal="#333" fab:menu_labels_colorPressed="#444" fab:menu_labels_colorRipple="#66efecec" fab:menu_labels_cornerRadius="3dp" fab:menu_labels_ellipsize="none" fab:menu_labels_hideAnimation="@anim/fab_slide_out_to_right" fab:menu_labels_margin="0dp" fab:menu_labels_maxLines="-1" fab:menu_labels_padding="8dp" fab:menu_labels_position="left" fab:menu_labels_showAnimation="@anim/fab_slide_in_from_right" fab:menu_labels_showShadow="true" fab:menu_labels_singleLine="false" fab:menu_labels_textColor="#f2f1f1" fab:menu_labels_textSize="15sp" fab:menu_openDirection="up" fab:menu_shadowColor="#66aff198" fab:menu_shadowRadius="4dp" fab:menu_shadowXOffset="1dp" fab:menu_shadowYOffset="4dp" fab:menu_showShadow="true"> <com.github.clans.fab.FloatingActionButton android:id="@+id/material_design_floating_action_menu_item1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_action_send" fab:fab_label="Menu Item 1" fab:fab_size="mini" /> <com.github.clans.fab.FloatingActionButton android:id="@+id/material_design_floating_action_menu_item2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_action_photo" fab:fab_label="Menu Item 2" fab:fab_size="mini" /> <com.github.clans.fab.FloatingActionButton android:id="@+id/material_design_floating_action_menu_item3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_action_edit" fab:fab_label="Menu Item 3" fab:fab_size="mini" /> </com.github.clans.fab.FloatingActionMenu> </RelativeLayout> کلاس اکتیویتی MaterialDesignFloatingActionMenu FloatingActionMenu materialDesignFAM; FloatingActionButton floatingActionButton1, floatingActionButton2, floatingActionButton3; public class MaterialDesignFloatingActionMenu extends AppCompatActivity { FloatingActionMenu materialDesignFAM; FloatingActionButton floatingActionButton1, floatingActionButton2, floatingActionButton3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.material_design_floating_action_menu); materialDesignFAM = (FloatingActionMenu) findViewById(R.id.material_design_android_floating_action_menu); floatingActionButton1 = (FloatingActionButton) findViewById(R.id.material_design_floating_action_menu_item1); floatingActionButton2 = (FloatingActionButton) findViewById(R.id.material_design_floating_action_menu_item2); floatingActionButton3 = (FloatingActionButton) findViewById(R.id.material_design_floating_action_menu_item3); floatingActionButton1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //TODO something when floating action menu first item clicked } }); floatingActionButton2.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //TODO something when floating action menu second item clicked } }); floatingActionButton3.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //TODO something when floating action menu third item clicked } }); } }
  41. 1 like
    سلام اطلاعاتی که به ریسایکلرویو اضافه میکنید به چه صورت هست؟ یعنی از سرور میخونه یا در دیتابیس وجود دارن و یا به صورت آرایه اضافه میشن؟ کلدهای مربوطه رو هم بذارید تا بهتر بشه راهنمایی کرد...
  42. 1 like
    درسته هرکاری کنید باز هم کدها دیکامپایل میشه و شما فقط میتونید دسترسی رو به کد ها پیچیده تر و سخت تر کنید. درواقع باید روی این حساب کنید که شخص بالاخره از یجایی به بعد خسته بشه و بقیه مراحل رو انجام نده
  43. 1 like
    قسمت دوم: کار با دیتابیس و انجام عملیات هایی نظیر اپدیت, حذف و سرچ با استفاده از اینترفیس و Annotation لینک دانلود
  44. 1 like
    سلام میتونید در کلاس service از onTaskRemove استفاده کنید که در واقع باید override بشه: @Override public void onTaskRemoved(Intent rootIntent){ Intent alarmIntent = new Intent(getActivity(), ReceiverUpdateData.class); AlarmManager manager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE); manager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), Integer.parseInt(newValue.toString())*60*1000, PendingIntent.getBroadcast(getActivity(), 0, alarmIntent, 0)); super.onTaskRemoved(rootIntent); }
  45. 1 like
    این خطا که برای شما نمایش داده . برای منم همین بود اما با یک وی پی ان تونستم دانلود کنم
  46. 1 like
    مشاهده فایل معرفی کتابخانه ShowcaseView کتابخانه (ShowcaseView ) برای برجسته سازی و نمایش بخش های خاص برنامه ها به کاربر با پوشش متمایز و جذاب طراحی شده است. این کتابخانه عالی است برای اشاره به نقاط مورد علاقه برای کاربران، حرکات، و یا موارد مبهم مفید است. ارسال کننده Omid Zakeri ارسال ۱۷/۰۹/۱۸ دسته کتابخانه های اندروید  
  47. 1 like
    EventBus یک کتابخانه است که یک روش ساده برای ارتباط بین بخش های مختلف برنامه شما است. برای مثال، ارسال اطلاعات از یک activity به یک سرویس در حال اجرا، و یا تعامل آسان بین fragments ها. به مثال زیر دقت کنید: در این مثال اگر اینترنت قطع شده باشد چگونگی نمایش انرا در اکتیویتی نشان می دهد.. public class NetworkStateReceiver extends BroadcastReceiver { // post event if there is no Internet connection public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); if(intent.getExtras()!=null) { NetworkInfo ni=(NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO); if(ni!=null && ni.getState()==NetworkInfo.State.CONNECTED) { // there is Internet connection } else if(intent .getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY,Boolean.FALSE)) { // no Internet connection, send network state changed EventBus.getDefault().post(new NetworkStateChanged(false)); } } // event public class NetworkStateChanged { private mIsInternetConnected; public NetworkStateChanged(boolean isInternetConnected) { this.mIsInternetConnected = isInternetConnected; } public boolean isInternetConnected() { return this.mIsInternetConnected; } } public class HomeActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); EventBus.getDefault().register(this); // register EventBus } @Override protected void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); // unregister EventBus } // method that will be called when someone posts an event NetworkStateChanged public void onEventMainThread(NetworkStateChanged event) { if (!event.isInternetConnected()) { Toast.makeText(this, "No Internet connection!", Toast.LENGTH_SHORT).show(); } } }
  48. 1 like
  49. 1 like
    خب میخوام http://www1.live.irib.ir/web/live/tv/channel3?file=irib3-1&streamer=rtmp://cdn.live.irib.ir:1935/irib3 اینو نمایش بده هرکاری میکنم نمیشه لطفا راهنمایی کنید
  50. 1 like
    طی چند روز آینده لینک دانلود آخرین نسخه اندروید استودیو اختصاصی انجمن قرار خواهیم داد تا بدون مشکل دانلود نمایید