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

  1. Farzad Sarseifi

    Farzad Sarseifi

    مدیریت انجمن


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

      24

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

      1,797


  2. a.khosroabadi

    a.khosroabadi

    مدیر انجمن


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

      10

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

      162


  3. Behrad Ravanbod

    Behrad Ravanbod

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


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

      5

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

      15


  4. mostafa5709

    mostafa5709

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


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

      3

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

      66



Popular Content

Showing most liked content since ۱۷/۰۴/۲۸ in all areas

  1. 2 likes
    سلام متاسفانه اون قسمتی که احتیاج داشتم نزاشتین یا اینکه اگه امکان داره تو کلاس اکتیویتی تون ببینین خط 100 چه کدی داره؟ خط 100 MainActivity یه ابجکت دارین که Null هستش
  2. 1 like
    دومین جشن رمضان با هدایای ویژه انجمن اندروید ایران با شروع ایام ماه مبارک رمضان انجمن اندروید ایران عید جشنواره رمضان خود را آغاز میکند. خرداد ۱۳۹۶ با انتشار مطالب آموزش ها ،ویدئوهای آموزشی(تولید شده توسط خودتان و قرار دادن در انجمن)،کتابخانه ها ،نمونه پروژه های کاربردی و اپلیکیشن ها تولید شده توسط خودتان علاوه بر اینکه در این ماه مبارک به سایر کاربران هدیه میدهید و از دعای خیر آنان بهره مند میشود میتوانید در جشن انجمن اندروید ایران نیز شرکت نموده و از هدایای انجمن بهره مند شوید. در جشن یک ماهه انجمن اندروید ایران کلیه کاربران انجمن میتوانند با ارائه یکی از موارد زیر در این جشن شرکت نموده و از هدایای در نظر گرفته شده بهره مند شوند: نفرات اول و دوم ) دستگاه تبلت اندرویدی نفرات سوم تا دهم ) دسترسی به اموزش های اندروید در وب سایت آموزشگاه اندروید ایران نحوه شرکت در جشن و دریافت جایزه: برای شرکت در جشن رمضان انجمن اندروید ایران کافیست که تاپیک خود را که شامل یکی از موارد بالا باشد منتشر کنید در انتهای ماه مبارک رمضان و در روز عید فطر به تعدادی از شرکت کنندگان در جشن به قید قرعه جوایز ارزنده اهدا خواهد شد. توجه 1: لطفا پس از انتشار تاپیک خود فقط و فقط لینک آن را در این اطلاعیه قرار دهید . تقدیم با
  3. 1 like
    باید سرویس بنویسی برای اینکار.چون stop اکتیویتی میشه
  4. 1 like
    مشکل حل شد اول باید ES FILE EXPLORER را نصب کنید بعد از system/build.prop را پیدا کنید و ویرایش بزنید و : ro.securestorage.support = true را به: ro.securestorage.support = false تغییر دهید سپس دستگاه را مجددا راه اندازی کنید. حالا رمز عبورWi-Fi خود را در حال حاضر دوباره تایپ کنید. نکته: دستگاه شما باید روت شده باشد
  5. 1 like
  6. 1 like
    سلام دوستان یه کتابخونه توپ پیدا کردم که دیگه درگیر ساخت نویگیشن دراور دستی نشد فول امکانات اول با کد زیر کتابخونه رو به پروژه اضافه کنین. اگه نمیدونین چطوری اموزش افزودن کتابخونه به اندروید رو ببینین ___ کد: compile('com.mikepenz:materialdrawer:5.9.1@aar') { transitive = true } خب حالا بعد از افزوده شدن میریم سراغ کد نویسی جهت تست این کد رو در onCreate قرار بدین new DrawerBuilder().withActivity(this).build(); بعد پروژه رو اجرا کنید و دستتون رو از سمت چپ به راست روی صفحه بکشید.اگه منو باز شد یعنی موفقیت آمیز بوده. پس میریم سراغ تنظیم امکانات PrimaryDrawerItem item1 = new PrimaryDrawerItem().withIdentifier(1).withName(R.string.drawer_item_home); SecondaryDrawerItem item2 = new SecondaryDrawerItem().withIdentifier(2).withName(R.string.drawer_item_settings); با این کد دو تا آیتم تعریف میکنید اما هنوز به منو معرفی نشدن.پس مثلا کد زیر مینویسیم به جای اون کد اولیه Drawer result = new DrawerBuilder() .withActivity(this) .withToolbar(toolbar) .addDrawerItems( item1, new DividerDrawerItem(), item2, new SecondaryDrawerItem().withName(R.string.drawer_item_settings) ) .withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() { @Override public boolean onItemClick(View view, int position, IDrawerItem drawerItem) { // do something with the clicked item :D } }) .build(); یه توضیح در موردش بدم گیج نشین؛ابتدا یه متغیر از نوع Drawer تعریف کرده و اون رو با یه شی جدید از نوع DrawerBuilder پر میکنه.آخرش که میگه .Build() باعث میشه منو ساخته بشه و به اکتیویتی شما که با کد withActivity بهش گفتین وصل بشه.در ضمن بگم نیاز هست که یه Toolbar تو لایوت خودتون تعریف کنین و منو رو بهش وصل کنید با کد withToolbar با استفاده از کد addDraweritems،بایستی اون آیتم هایی که ساخته بودید رو بهش معرفی کنین مثل کد.توابعی هم که زیرش نوشتین از اسمشون مشخصه برای وقتی که روی آیتم ها کلیک بشه صدا زده میشن. یه امکان خوبی که این کتابخونه داره اینه که اگه توی پروژتون مسائل کاربر و ورود و خروج دارید یه حرکت قشنگ میزنه اونم AcountHeader هستش.کد زیر رو کپی کنید تو پروژه قبل از کد اصلی! سپس به همون کد اصلی که ساخت منو هست،این کد هم اضافه کنید .withAccountHeader(headerResult) که در نهایت همچین کدی داشته باشین Drawer result = new DrawerBuilder() .withActivity(this) .withAccountHeader(headerResult) .withToolbar(toolbar) .addDrawerItems( item1, new DividerDrawerItem(), item2, new SecondaryDrawerItem().withName(R.string.drawer_item_settings) ) .withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() { @Override public boolean onItemClick(View view, int position, IDrawerItem drawerItem) { // do something with the clicked item :D } }) .build(); این کتابخونه خیلی امکانات دیگه داره که این فقط کمی ازشون بود.اگه میخواین جدی از این کتابخونه استفاده کنید بهتره به صفحه گیتهابش مراجعه کنین. لینک ببخشید کمی سرسری توضیح دادم خدانگهدار
  7. 1 like
  8. 1 like
  9. 1 like
  10. 1 like
    چرا خود اندروید استودیو رو نصب نمیکنید. بیشتر مشکل فارسی نویسی حل شده است
  11. 1 like
    سلام روز بخیر این خطا مربوط به زمانی هستش که تعداد متد های فایل dex از یه حد مجازی بیشتر میشه و اجازه نمیده بیشتر ازین تعداد متد داشته باشید. راه حل این مشکل هم این هست که اجازه استفاده از چند فایل dex به پروژتون بدین و برای این کار باید تو gradle.properties کد زیر اضافه کنید defaultConfig { multiDexEnabled true } و یک نکته دیگه اینکه برای چه کاری احتیاج به کتابخونه play-service دارین؟ بهتره به جای اینکه کل این کتابخونه رو اضافه کنید فقط کتابخونه ای که بهش احتیاج دارین اضافه کنید مثل map یا ..... اینجوری هم حجم اپلیکیشنتون میاد پایین و هم اینکه تعداد متدها خیلی کمتر میشه و احتمالا مشکلتون برطرف خواهد شد.
  12. 1 like
    درود میتونید از داخل winrar از گزینه repair استفاده کنید. و یا از داخل پوشه فعلی در پوشه دیگری انتقال بدید فایل فشرده را و سپس استخراج کنید. سعی کنید نام پوشه فارسی نباشد.
  13. 1 like
    لینک برای درج داخل اپلیکیشن به اینصورت هست. https://telegram.me/APSAdmin?startgroup=new باید توسط intent خود تلگرام ارسال بشه. اون آیدی APSAdmin رو تنها باید با API خود تلگرام قرار بدید که بعد از کلیک هر کاربر شناسه کاربری اون شخص جایگزین میشه و دستور اجرا میشه. و اینکه API این دستور برای استفاده در برنامه ساز به اینصورت است. Dim s As PhoneIntents StartActivity(s.OpenBrowser("http://telegram.me/"&edittext1.Text&"?startgroup=new" End If به نظر من ابتدا بهتره شما زبان جاوا را آموزش ببینید. ممنون
  14. 1 like
    به این آدرس بروید Tools>Android>Sdk manager
  15. 1 like
    سلام دوست عزیز یک بار پروژتونو clean کنید
  16. 1 like
    اندروید هر روز در حال بروزسانی میباشد و اگر میخواهید جدیدترین امکانات اندروید را در اپلیکیشن خود استفاده کنید که در ورژن های پایین اندروید هم پشتیبانی شود باید از کتابخانه Appcompat استفاده کنید
  17. 1 like
    سلام دوست عزیز شما دوتا راه دارین برای ساخت اون 2 صفحه 1- یک activity بسازین و داخلش اون دو صفحه ثبت نام به صورت فرگمنت لود کنید 2- برای هرکدوم یک activity در نظر بگیرین. برای اینکه چک کنید که اگه ثبت نام نکرده بود بهترین را استفاده از sharedPrefrences هستش.وقتی یک شخص میاد و ثبت نام میکنه باید براش یک sharedPrefrences ذخیره کنید. خوب حالابرای اینکه چک کنید باید داخل main activity چک کنید که آیا همچین sharedPrefrences ذخیره شده یا نه. اگه ذخیره نشده بود بره به activity ثبت نام یا login و اگه ذخیره شده بود و در حالت لاگین قرار داشت که داخل همون main activity بمونه یا به هر activity که خواستین بره.
  18. 1 like
    سلام وقتی که حذف میشه میخواین که از دیتابیس هم حذف بشه یا فقط از لیست برای اینکه از لیست حذف بشه باید به صورت زیر عمل کنید برای لیستتون باید یک متد onItemClickListener بنویسید داخل متد onItemClick میتوینید از دو روش زیر استفاده کنید 1- Object toRemove = arrayAdapter.getItem(position); arrayAdapter.remove(toRemove); 2- arrayList.remove([INDEX]); arrayAdapter.notifyDataSetChanged(); البته این دو حالت اطلاعاتو از دیتابیس حذف نمیکنه برای اینکه از دیتا بیس هم حذف بشه باید متدشو بنویسید و قبل از این دو ایتم قرار بدین
  19. 1 like
    سلام دوست عزیز برای چک کردن اینکه cursore خالی هستش از روش های زیر استفاده کنید if (!cursore.moveTofirst() && cursore.getCount == 0) یا if (cursore == null && !cursore.moveToFirst()) و قبل از اینکه زمانی که چک کردین و دیدین cursore پر هستش باید cursore رو به اولش برگردونید تا بتونید اطلاعات رو بخونید ازش و باید درصورتی که شرط های بالا درست بود متد زیر رو قرار بدین cursore.moveToFirst(); و نکته بعدی حلقه while دوم برای چی هستش؟ فکر نمیکنم احتیاجی بهش باشه.
  20. 1 like
    مطلب رو ویرایش کردم. دوباره بررسی نمایید
  21. 1 like
    https://developer.android.com/guide/practices/screens_support.html res/layout/my_layout.xml // layout for normal screen size ("default") res/layout-large/my_layout.xml // layout for large screen size res/layout-xlarge/my_layout.xml // layout for extra-large screen size res/layout-xlarge-land/my_layout.xml // layout for extra-large in landscape orientation res/drawable-mdpi/graphic.png // bitmap for medium-density res/drawable-hdpi/graphic.png // bitmap for high-density res/drawable-xhdpi/graphic.png // bitmap for extra-high-density res/drawable-xxhdpi/graphic.png // bitmap for extra-extra-high-density res/mipmap-mdpi/my_icon.png // launcher icon for medium-density res/mipmap-hdpi/my_icon.png // launcher icon for high-density res/mipmap-xhdpi/my_icon.png // launcher icon for extra-high-density res/mipmap-xxhdpi/my_icon.png // launcher icon for extra-extra-high-density res/mipmap-xxxhdpi/my_icon.png // launcher icon for extra-extra-extra-high-density و فقط یک نکته برای اندروید های بالای ۲.۳ باید از ایتم های زیر استفاده کنید res/layout/main_activity.xml # For handsets (smaller than 600dp available width) res/layout-sw600dp/main_activity.xml # For 7” tablets (600dp wide and bigger) res/layout-sw720dp/main_activity.xml # For 10” tablets (720dp wide and bigger
  22. 1 like
  23. 1 like
    آیا لایوت های زیر رو طراحی کردید ؟ layout layout-sw600 layout-720
  24. 1 like
    ببخشید من کدتون رو موقع ویرایش خط تعریف ویجت رو اشتباهی حذف کردم مقدار score رو از کجا به کنترل نسبت میدهید؟
  25. 1 like
    ممنون از توضیحات خوبتان منم همین مشکل را داشتم
  26. 1 like
  27. 1 like
    اینو باید خودتون حتما مدیریت کنید و مقدار دهی کنید براساس انتخاب مقداری که کاربر انتخاب میکنه
  28. 1 like
    بهش مقدار پیشفرض بدید مشکلتون حل میشه. مثل دستور زیر sharedPreferences.getInt("Font_Size",18);
  29. 1 like
    دریافت کتابخانه دکمه شناور floating button در اندروید FloatingActionButton Yet another implementation of Floating Action Button for Android with lots of features. Requirements The library requires Android API Level 14+. Usage Add a dependency to your build.gradle: dependencies { compile 'com.github.clans:fab:1.6.4' } Add the com.github.clans.fab.FloatingActionButton to your layout XML file. <FrameLayout 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"> <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="match_parent" /> <com.github.clans.fab.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:layout_marginBottom="8dp" android:layout_marginRight="8dp" android:src="@drawable/ic_menu" fab:fab_colorNormal="@color/app_primary" fab:fab_colorPressed="@color/app_primary_pressed" fab:fab_colorRipple="@color/app_ripple"/> </FrameLayout> دریافت از انجمن اندروید ایران FloatingActionButton-master (1).zip
  30. 1 like
    سلام به جناب سرسیفی و تمامی دوستان بعد از 4 سال دوباره به سایتتون برگشتم تبریک می گم بهتون تمام موفقیت ها و سخت کوشی تون رو سوال بنده این هست که من اندروید استدیو رو نصب کردم ولی هر بار که می خوام ران کنمش,پیغام نصب دوباره می ده ,چی کار باید انجام بدم؟ سوال دومم اینکه ورژن اندروید استدیو 2.1.2 هستش,اخرین ورژن نیست درسته؟ اگر هم امکانش هست یک کتاب انگلیسی کامل برای یادگیری اندروید استدیو معرفی کنید پیشاپیش ممنونم
  31. 1 like
    اندروید استودیو مثل اکلیپس نیستش که پرتال باشه و خودش رو اجرا کنید.. به بخش Program file ویندوز برید و از اونجا اجراش کنید
  32. 1 like
    برای نصب و اجرای اندروید استودیو باید نسخه JDK8 جاوا رو نصب کنید
  33. 1 like
    به تب دوم یعنی Sdk Tools بروید و دانلود کنید sdk های جدید رو
  34. 1 like
    سلام خوش اومدید به انجمن خودتون نسخه اخر در حال حاضر ۲.۳.۳ هستش که میتوانید نصب کنید و Api ۲۶ کتاب آموزشی محیط اندروید استودیو AndroidStudioEssentialsPreview.pdf
  35. 1 like
    کد حافظه داخلی uri به صورت زیر هستش.
  36. 1 like
    با استفاده از لینک زیر به جوابم رسیدم http://www.limbaniandroid.com/2014/03/how-to-get-absolute-path-when-select.html
  37. 1 like
    خیلی ممنونم.مرسی از پاسختون.واقعا" این سایت و شما بهترینید.
  38. 1 like
    import java.util.ArrayList; import android.app.Activity; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.util.Log; public class MainActivity extends Activity { ArrayList<String> sms_id = new ArrayList<String>(); ArrayList<String> sms_num = new ArrayList<String>(); ArrayList<String> sms_Name = new ArrayList<String>(); ArrayList<String> sms_dt = new ArrayList<String>(); ArrayList<String> sms_body = new ArrayList<String>(); // private ImageView imageView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Uri myMessage = Uri.parse("content://sms/"); ContentResolver cr = this.getContentResolver(); Cursor c = cr.query(myMessage, new String[] { "_id", "address", "date", "body", "read" }, "address = '+9180009'", null, null); startManagingCursor(c); getSmsLogs(c, MainActivity.this); } public void getSmsLogs(Cursor c, Context con) { if (sms_num.size() > 0) { sms_id.clear(); sms_num.clear(); sms_Name.clear(); sms_body.clear(); sms_dt.clear(); } try { if (c.moveToFirst()) { do { if (c.getString(c.getColumnIndexOrThrow("address")) == null) { c.moveToNext(); continue; } String Number = c.getString( c.getColumnIndexOrThrow("address")).toString(); String _id = c.getString(c.getColumnIndexOrThrow("_id")) .toString(); String dat = c.getString(c.getColumnIndexOrThrow("date")) .toString(); String Body = c.getString(c.getColumnIndexOrThrow("body")) .toString(); Log.e("Body-->", "" + Body); sms_id.add(_id); sms_num.add(Number); sms_body.add(Body); } while (c.moveToNext()); } c.close(); } catch (Exception e) { e.printStackTrace(); } } }
  39. 1 like
    AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itcuties.android.apps" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> <uses-permission android:name="android.permission.READ_SMS"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.itcuties.android.apps.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#000"> <TextView android:id="@+id/smsNumberText" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="NUMBER_GOES_HERE"> </TextView> </LinearLayout> SMSData.java package com.itcuties.android.apps.data; /** * This class represents SMS. * * @author itcuties * */ public class SMSData { // Number from witch the sms was send private String number; // SMS text body private String body; public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } } ListAdapter.java package com.itcuties.android.apps; import java.util.List; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; import com.itcuties.android.apps.data.SMSData; /** * List adapter for storing SMS data * * @author itcuties * */ public class ListAdapter extends ArrayAdapter<SMSData> { // List context private final Context context; // List values private final List<SMSData> smsList; public ListAdapter(Context context, List<SMSData> smsList) { super(context, R.layout.activity_main, smsList); this.context = context; this.smsList = smsList; } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View rowView = inflater.inflate(R.layout.activity_main, parent, false); TextView senderNumber = (TextView) rowView.findViewById(R.id.smsNumberText); senderNumber.setText(smsList.get(position).getNumber()); return rowView; } } MainActivity.java package com.itcuties.android.apps; import java.util.ArrayList; import java.util.List; import android.app.ListActivity; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.ListView; import android.widget.Toast; import com.itcuties.android.apps.data.SMSData; /** * Main Activity. Displays a list of numbers. * * @author itcuties * */ public class MainActivity extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); List<SMSData> smsList = new ArrayList<SMSData>(); Uri uri = Uri.parse("content://sms/inbox"); Cursor c= getContentResolver().query(uri, null, null ,null,null); startManagingCursor(c); // Read the sms data and store it in the list if(c.moveToFirst()) { for(int i=0; i < c.getCount(); i++) { SMSData sms = new SMSData(); sms.setBody(c.getString(c.getColumnIndexOrThrow("body")).toString()); sms.setNumber(c.getString(c.getColumnIndexOrThrow("address")).toString()); smsList.add(sms); c.moveToNext(); } } c.close(); // Set smsList in the ListAdapter setListAdapter(new ListAdapter(this, smsList)); } @Override protected void onListItemClick(ListView l, View v, int position, long id) { SMSData sms = (SMSData)getListAdapter().getItem(position); Toast.makeText(getApplicationContext(), sms.getBody(), Toast.LENGTH_LONG).show(); } }
  40. 1 like
    این برای این میباشد که میخواد نسخه های dependency رو دانلود کنه و چونکه برای ما فیلتره نمی تونه اینکار رو انجام بده و تمامی سرور هارو چک میکنه.بعد اینکه برای دفعه اول باز شد لطفا gradle رو offline کنید تا دیگر این مشکل ایجاد نشود .. اگر زمانی خواستید کتابخونه دانلود کنید دوباره online کنید
  41. 1 like
    خداروشکر خواهش میکنم دوست عزیز موفق باشید
  42. 1 like
    اقا اکی شد.واقعا از راهنمایی فوق العادتون متشکرم دوست عزیز
  43. 1 like
    دوست عزیز شما یک حلقه دارین به این صورت for (int i = 0; i < n; i++) این حلقه قراره به تعداد n بار تکرار بشه. اتفاقی که میفته به نظر من این هستش که n متناسب با سایز لیستتون تغییر نمیکنه. من پیشنهادم به شما این هستش که به جای این n مقدار list_Co.size() قرار بدین این حلقه هربار دقیقا به تعداد لیست شما اجرا بشه.
  44. 1 like
    با حذف و نصب دوباره اندروید استودیو مشکل برطرف شد
  45. 1 like
    ببینید چندتا مسئله هستش اگه هربار که کاربر به سرور وصل میشه احتیاج به این توکن داره پس حتما باید داخل response برای دستگاه ارسال بشه و شما چک کنید اگه این توکن ست شده بود اونو بگیرین و دخیره کنید و هربار که کاربر درخواستی داره وی میخواد به سرور وصل بشه باید این توکن رو ارسال کنید به سرور. و همونطور که دوستمون گفتند داخل گروه در صورتی که کاربر logout کرد حتما این توکن رو باید پاک کنید تا کاربر خارج بشه و وقتی مجددا خواست login کنه به سرور متصل بشه و توکن رو بگیره.
  46. 1 like
    سلام وقت بخیر تفاوتی خاصی نداره ولی اگر هاست ایران باشه سریعتر لود میشود حجم ترافیک و هاست هم به تعداد یوزر هاتون بستگی داره که چقدر هستش.
  47. 1 like
    میتونید به سازنده اپلیکیش هایی که کاربران زیادی دارند ایمیل بزنید و مکاتبه کنید
  48. 1 like
    هدیه ویژه جشنواره ماه مبارک رمضان یک عدد تبلت لنوو به همراه گیفت کارت 2000 تومانی کافه بازار و Gerdoo Android Pack 2.0 با تشکر فراوان از زحمات فراوان مدیر سایت آقای سرسیفی و سایت خیلی خوب ایشون. من برنامه نویسی اندروید و با این سایت شروع کردم و تمام دانش و اطلاعاتمو مدیون این سایت هستم.
  49. 1 like
    توی این آموزش میخوایم یه گالری عکس درست کنیم که از view pager استفاده میکنه توی بعضی از نرم افزارها برای بخش راهنما هم استفاده میشه. برای این کار پروزه جدید ایجاد کنید توی فایل activity_main.xml کد زیر را قرار بدید ]<?xml version="1.0" encoding="utf-8"?> android:layout_width="fill_parent" android:layout_height="fill_parent" > android:id="@+id/view_pager" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_above="@+id/screen_navigation_button" /> android:id="@id/screen_navigation_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:gravity="center" android:padding="10dip" android:text="ViewPager!" android:textSize="18sp" /> فایل دیگری به اسم single_view.xml ایجاد کنید و کد زیر را در آن قرار دهید. <?xml version="1.0" encoding="utf-8"?> android:id="@+id/image_view" android:layout_width="fill_parent" android:layout_height="fill_parent" /> در فایل جاوا کد زیر را قرار دهید package com.example.viewpageractivity; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private static final int MAX_VIEWS = 5; ViewPager mViewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mViewPager = (ViewPager) findViewById(R.id.view_pager); mViewPager.setAdapter(new WalkthroughPagerAdapter()); mViewPager.setOnPageChangeListener(new WalkthroughPageChangeListener()); } class WalkthroughPagerAdapter extends PagerAdapter { @Override public int getCount() { return MAX_VIEWS; } @Override public boolean isViewFromObject(View view, Object object) { return view == (View) object; } @Override public Object instantiateItem(View container, int position) { Log.e("viewPager", "instantiateItem(" + position + ");"); Toast.makeText(getApplicationContext(), position+"", Toast.LENGTH_LONG).show(); LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View imageViewContainer = inflater.inflate(R.layout.single_view, null); ImageView imageView = (ImageView) imageViewContainer.findViewById(R.id.image_view); switch(position) { case 0: imageView.setImageResource(R.drawable.ic_launcher); break; case 1: imageView.setImageResource(R.drawable.ic_launcher); break; case 2: imageView.setImageResource(R.drawable.ic_launcher); break; case 3: imageView.setImageResource(R.drawable.ic_launcher); break; case 4: imageView.setImageResource(R.drawable.ic_launcher); break; } ((ViewPager) container).addView(imageViewContainer, 0); return imageViewContainer; } @Override public void destroyItem(ViewGroup container, int position, Object object) { ((ViewPager)container).removeView((View)object); } } class WalkthroughPageChangeListener implements ViewPager.OnPageChangeListener { @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int position) { // Here is where you should show change the view of page indicator switch(position) { case MAX_VIEWS - 1: break; default: } } } با توجه به نیاز خودتون میتونید برنامه رو تغییر بدید
  50. 1 like
    یکی از امکاناتی که اندروید پیاده سازی شده 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" /> انجمن پی سی دروید....