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


Popular Content

Showing most liked content since ۱۷/۰۹/۱۳ in all areas

  1. 2 likes
    کاتلین چیست ؟ کاتلین یک زبان برنامه نویسی تایپ اسکریتی میباشد برای ماشین مجازی JVM که اندروید ومروگر های بطوررسمی توسط گوگل برای اندروید پشتیبانی میشود. زبان برنامه نویسی کاتلین توسط شرکت Jetbrain توسعه داده شده است .شرکت Jetbrain ایجاد کننده Intellij idea میباشد ،اندروید استودیو نیز براساس Intellij میباشد .در مراسم گوگل i/o 2017 گوگل بطور رسمی کاتلین را زبان رسمی توسعه اندروید بنا نهاد. چرا کاتلین : با استفاده از زبان کاتلین کدهای کمتری خواهید نوشت و با عملیات های بسیار بالا.در جاوا. اگر شما میخواهید یک data کلاس ایجاد کنید مدت زمان زیادی را باید صرف ساخت members و getter و setter ها کنید،اما در کاتلین شما میتوانید اینکار را با کدهای خیلی کمتری انجام دهید data class Person( var id : Long, var name:String, var age: Int) همچنین یک نکته خوب دیگه : Null safe در زبان برنامه نویسی جاوا هنگام کد نویسی با مقدار Null pointer exception زیاد روبه روبه میشوید.اما بااستفاده از زبان برنامه نویسی کاتلین خطای Null pointer exception هیچوقت رخ نخواهد داد چگونه میتوانیم از کاتلین استفاده کنیم ؟ از اندروید استودیو 3.0 کاتلین بطور کامل پشتیبانی میشود. در ورژن های حال حاضر میتوانید پلاگی کاتلین را نصب کنید و از زبان برنامه نویسی کاتلین استفاده کنید.
  2. 1 like

    نگارش 1.0.0

    1 دانلود

    یکی از عواملی که باعث جلب توجه کاربران به برنامه ای می شود استفاده از انیمیشن های جذاب و چشمگیر است. استفاده از انیمیشن در اندروید به برنامه ها شکل و شمایل حرفه ای می دهد و یکی از فاکتورهای اصلی و مهم در طراحی برنامه هایی با رابط کاربری قوی و یا باصطلاح کاربر پسند (User friendly) استفاده از انیمشین در برنامه های اندرویدی است.کتابخانه Curved-Fab-Reveal یکی از کتابخانه های جذاب به صورت انیمیشن و متریال بسیار زیبا.

    رایگان

  3. 1 like
    به این مسیر برید و Theme را تغییر بدین File-> settings in that choose IDE settings-> Appearance
  4. 1 like
    چه Theme ساختید ؟ میشه یک اسکرین شات قرار بدین از اندروید استودیو ؟
  5. 1 like
    مقدار sum بصورت int هست. sum رو ب string تبدیل کنید بعد در تکست ویو ست کنید
  6. 1 like
    برای اینکار میبایستی با VIewPager اینکار رو پیاده سازی کنید.بدین صورت 1- ابتدا لایوت زیر را در رابط کاربری خود اضافه کنید <android.support.v4.view.ViewPager android:id="@+id/pager" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" /> 2-سپس یک فرگمنت را ایجاد کنید FragmentOne public class FragmentOne extends Fragment { public FragmentOne() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_one, container, false); } } 3- رابط کاربری فرگمنت fragment_one.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:background="#D81B60" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Fragment One" android:textSize="40dp" android:textStyle="bold" android:textColor="#fff" android:layout_centerInParent="true"/> </RelativeLayout> 4- ساخت Adapter برای ViewPager و ایجاد آیتم ها ublic class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ViewPager viewPager = (ViewPager) findViewById(R.id.pager); ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); // Add Fragments to adapter one by one adapter.addFragment(new FragmentOne(), "FRAG1"); adapter.addFragment(new FragmentTwo(), "FRAG2"); adapter.addFragment(new FragmentThree(), "FRAG3"); viewPager.setAdapter(adapter); TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); } // Adapter for the viewpager using FragmentPagerAdapter class ViewPagerAdapter extends FragmentPagerAdapter { private final List<Fragment> mFragmentList = new ArrayList<>(); private final List<String> mFragmentTitleList = new ArrayList<>(); public ViewPagerAdapter(FragmentManager manager) { super(manager); } @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } public void addFragment(Fragment fragment, String title) { mFragmentList.add(fragment); mFragmentTitleList.add(title); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitleList.get(position); } } }
  7. 1 like
    متد سازنده ، متدی است هم نام کلاس که در هربار ايجاد نمونه‌اي جديد از آن كلاس، بصورت خودكار فراخواني مي‌گردد.هدف از متد سازنده مقدار دهی کردن اعضای کلاس در زمان ایجاد نمونه ای جدید از کلاس است. متد سازنده همیشه دارای سطح دسترسی public است. متد سازنده هیچ مقداری باز نمی گرداند حتی void هم نیست.اگر کلاسی متد سازنده نداشته باشد جاوا به صورت پیش فرض یک متد سازنده برای آن در نظر می گیرد. استفاده کردن از متد سازنده اجباری نیست.یک کلاس می تواند دارای چندین متد سازنده باشد. مثال1 : class Box { double width; double height; double depth; // This is the constructor for Box. Box() { System.out.println("Constructing Box"); width = 10; height = 10; depth = 10; } double volume() { return width * height * depth; } } class BoxDemo6 { public static void main(String args[]) { Box mybox1 = new Box(); Box mybox2 = new Box(); double vol; vol = mybox1.volume(); System.out.println("Volume is " + vol); vol = mybox2.volume(); System.out.println("Volume is " + vol); } } Output Constructing Box Constructing Box Volume is 1000.0 :مثال ۲ class Box { double width; double height; double depth; // This is the constructor for Box. Box(double w, double h, double d) { width = w; height = h; depth = d; } double volume() { return width * height * depth; } } class BoxDemo7 { public static void main(String args[]) { Box mybox1 = new Box(10, 20, 15); Box mybox2 = new Box(3, 6, 9); double vol; vol = mybox1.volume(); System.out.println("Volume is " + vol); vol = mybox2.volume(); System.out.println("Volume is " + vol); } } Output Volume is 3000.0 Volume is 162.0
  8. 1 like
    پایگاه داده SQLite یکی از راه های ذخیره داده های برنامه شما به صورت محلی در اندروید است. در این پایگاه داده من میخوام به شما یک راه ساده تر بهنشان دهم. با استفاده از Sugar ORM . به طور معمول با استفاده از SQLite در اندروید، مقدار زیادی از کد های boilerplate مورد نیاز بوده که زمان قابل توجهی صرف می شود. اما با Sugar ORM، همه ی شما نیاز به یک مدل (Bean) دارید: (Add a new note (save : اضافه کردن Delete note : حذف کردن Modify : تغییرات در ابتدا کتابخانه زیر را اضافه کنید : compile 'com.github.satyan:sugar:1.4' تنظیمات زیر را وارد منیفست کنید: <application android:name="com.orm.SugarApp" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" > … <meta-data android:name="DATABASE" android:value="notes.db" /> <meta-data android:name="VERSION" android:value="1" /> <meta-data android:name="QUERY_LOG" android:value="true" /> <meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.grafixartist.noteapp" /> </application> یک مدل (Bean) کلاس شما نیاز دارید که به صورت زیر باشد : public class Note extends SugarRecord { String title, note; long time; // Default constructor is important! public Note() { } public Note(String title, String note, long time) { this.title = title; this.note = note; this.time = time; } … // Getter setters here } برای Create کردن کد زیر را وارد کنید : Note note = new Note(title, desc, time); note.save(); برای Update کردن کد زیر را وارد کنید : Note note = Note.findById(Note.class, id); note.title = “updated title here"; note.save(); برای Delete کردن کد زیر را وارد کنید : Note note = Note.findById(Note.class, id); note.delete(); برای بدست آوردن فهرست همه لیست ها : List<Note> notes = Note.listAll(Note.class); Query برای این کار 2 راه برای انجام این کار وجود دارد. بیایید مثال را مقایسه کنیم: استفاده از Raw Query : List<Note> notes = Note.findWithQuery(Note.class, "Select * from Note where name = ?", "mynote"); استفاده از Query Builder : Select.from(Note.class) .where(Condition.prop("title").eq("mynote"), Condition.prop("description").eq("notedesc")) .list();
  9. 1 like
    این متد را اجرا کنید ublic boolean isStoragePermissionGranted() { if (Build.VERSION.SDK_INT >= 23) { if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { Log.v(TAG,"Permission is granted"); return true; } else { Log.v(TAG,"Permission is revoked"); ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); return false; } } else { //permission is automatically granted on sdk<23 upon installation Log.v(TAG,"Permission is granted"); return true; } } Call back نتیجه Permission @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if(grantResults[0]== PackageManager.PERMISSION_GRANTED){ Log.v(TAG,"Permission: "+permissions[0]+ "was "+grantResults[0]); //resume tasks needing this permission } }
  10. 1 like
    کتاب آموزشی Kotlin Language Documentation عنوان کتاب:Kotlin Language Documentation حجم:1.42 مگابایت نویسنده: Kotlin چرا این کتاب را بخونم: Kotlin provides the ability to target JavaScript. It does so by transpiling Kotlin to JavaScript. The current implementation targets ECMAScript 5.1 but there are plans to eventually target ECMAScript 2015 also. When you choose the JavaScript target, any Kotlin code that is part of the project as well as the standard library that ships with Kotlin is transpiled to JavaScript. However, this excludes the JDK and any JVM or Java framework or library used. Any file that is not Kotlin will be ignored during compilation. The Kotlin compiler tries to comply with the following goals: Provide output that is optimal in size Provide output that is readable JavaScript Provide interoperability with existing module systems Provide the same functionality in the standard library whether targeting JavaScript or the JVM (to the largest possible degree). You may want to compile Kotlin to JavaScript in the following scenarios: Creating Kotlin code that targets client-side JavaScript Interacting with DOM elements. Kotlin provides a series of statically typed interfaces to interact with the Document Object Model, allowing creation and update of DOM elements. Interacting with graphics such as WebGL. You can use Kotlin to create graphical elements on a web page using WebGL. Creating Kotlin code that targets server-side JavaScript Working with server-side technology. You can use Kotlin to interact with server-side JavaScript such as node.js Kotlin can be used together with existing third-party libraries and frameworks, such as JQuery or ReactJS. To access third-party frameworks with a strongly-typed API, you can convert TypeScript definitions from the Definitely Typed type definitions repository to Kotlin using the ts2kt tool. Alternatively, you can use the dynamic type to access any framework without strong typing. Kotlin is also compatible with CommonJS, AMD and UMD, making interaction with different module systems straightforward. To find out how to start using Kotlin for JavaScript, please refer to the tutorials. دانلود کتاب kotlin-docs.pdf
  11. 1 like
    تو کدهای php یه شرط بزارین که اگه کوئری به درستی اجرا شد، یه پیغام echo کنه با محتوای true و اگه کوئری اجرا نشد یه پیغام echo کنه با محتوای false. حالا در جاوا در متد OnRespone یه شرط بزارین که اگه if(request.equals("true"){ // here you can write your code } اگر هم ریسپانس false باشه در متد onErrorListener میتونید کدهای مربوط به ثبت نشدن رو بنویسید
  12. 1 like
    دوستان بالاخره تونستم مشکل کاراکتر فارسی رو حل کنم. زمانی که ما در url داده ها رو میزاریم و میفرستیم بعضی موبایلا اگه کاراکتر فارسی در url باشه درست میفرستن اما بعضی موبایلا کاراکترو درست نمیفرستن. بهترین راه حل اینه ک اول کاراکترها ب utf8 تبدیل بشن و بعد فرستاده بشن.
  13. 1 like
    در آموزش قبلی آموختیم که زبان کاتلین دارای چه قدرت هایی میباشد .بر همین اساس در این جلسه آموزشی یاد خواهیم گرفت که به چه صورتی بتوانیم از کاتلین در اندروید استودیو استفاده کنیم ابتدا محیط اندروید استودیو را باز کنید Android studio 3.0 تیک گزینه کاتلین را انتخاب کنید و سپس گزینه finish را انتخاب کنید تا پروژه ساخته شود برای ورژن های اندروید استودیو 2 .x به بالاتر شما حتما باید پلاگین کاتلین را نصب کنید از طریق مسیر file->Settings->plugin و گزینه kotlin را جستجو نمایید Project level app.gradle 1- تعریف کردن ورژن kotlin در زمانی که از ورژن های 1.1.3-2 استفاده میکنید 2- Dependency کاتلین را اضافه میکنیم app level app.gradle 1- پلاگن کاتلین اضافه میشود به ماژول ها 2- kotlin یک کتابخاه استاندارد میباشد.برای اینکه بیشتر در مورد این کتابخانه بدانیم از ادرس kotlinlang.org استفاده کنید پسوند فایل های کاتلین kt میباشد. در تصویر زیر تفاوت کاتلین و جاوا مشخص میشود 1- تمامی ارث بری ها با color (دو نقطه) انجام میشود(extends در جاوا) 2- وقتی یک متد overrideمیشود حتما میبایستی از کلمه کلیدی override استفاده کنیم 3- حتما باید بعد از تعریف کرد یک آبجکت از ? (علامت سوال) استفاده کنید. حالا خروجی به این صورت میباشد
  14. 1 like
    عملگرها در کاتلین در این جلسه آموزشی قصد داریم که در کاتلین بیاموزیم به چه صورتی میتوانیم از کاتلین استفاده کنیم.اما قبل از اینکه این مطلب آموزشی را شروع حتما آموزشی های زیر را مطالعه نمایید تا بتوانید تمامی مفاهیم پیش رو را بیاموزید Binary operators کاتلین یک زبان قدرتمند برای عملگرهای شرطی میباشد. بقیه زبان ها مشابه جاوا ، کاربر نمی تواند عملگرهای ریاضیات در برای نوع های اصلی استفاده کند اگر شما میخواهید از عملگرها برای ارایه استفاده کنید نمی توانید اینکا را انجام دهید،اما در کاتلین این براحتی ممکن میباشد .کاتلین مجموعه کاملی از عملگرها را شامل میشود اگر شما از کاتلین 1.1 استفاده میکنید میبایستی از متد rem() بجای mod() استفاده کنید و این دستور deprecate شده است data class Test(){ operator fun plus(increment : Int): Test{ return Test(count + increment ) } operator fun times(multiply : Int): Test{ return Test(count + multiply) } } var test=Test(10) println(test+10) //output -> Test(count =20) println(test*2) //output -> Test(count =12) Increment and Decrements بله، ++ و -- عملگرات بسیار کاربردی هستند،اما در کاتلین میتوانید با استفاده از متدهای زیر اینکار را انجام دهید Assignments operators با استفاده از Assignments operators میتوانید مقادیر متغیرها را تغییر داد،شما میتوانید اینکار را با صدا زدن متدهای مربوطه انجام داد Rest of Operators در کاتلین خیلی زیادی متد و کاربردی وجود وجود دارید که در اینجا با تعدادی از آنها آشنا خواهیم شد نتیجه گیری : در این آموزش آموختیم که در کاتلین به چه صورتی میتوان از function های Operator ها استفاده کرد
  15. 1 like
    در این مقاله، میخواهیم یاد بگیریم به چه صورتی میتوانیم متغیر ها را در کاتلین تعریف نماییم قبل از شروع این آموزشی حتما مطلب آموزشی زیر را مطالعه کنید تعریف متغیر ها در کاتلین،همه چیز یک OBject میباشد ،زیرا در کاتلین نوع اصلی نمی توانیم پیدا کنیم تعریف اولین متغیر شما میتوانید براحتی با کلمه کلیدی val یا var متغیر و نوع آن را تعریف کنید var i: Int=1 var d: Double=1.1 var f: Float=1.1F var l : Long=1L var c : Char ='c' var s: String="P30droid" با همین مثال های بالا ما تعداد شی با مقداد دهی اولیه ایجاد کنیم در کاتلین سمی کالن نداریم حافظه متغیر ها در کاتلین همچنین درکاتلین میتوانید متغیر یک متغیر جدید را بدون تعریف نوع آن فقط با مقداردهی یک متغیر دیگر که قبلا تعریف شده است را ایجاد کرد var ii= i+1 var dd= d+2.0 var ff= f+1 var ll= 1+1 var ss=s + "Iranian developers forum" println("ii : $ii , dd: &dd, ff: $ff,ll : &ll,ss : &ss") خروجی ii :2, dd : 3.1, ff :2, ss :P30droid Android Developers forum رشته ها در کاتلین : کار کردن با رشته ها در کاتلین به سادگی آب خوردن هستش var s : "Android" var ss : "My name is $s" // My name is Android var c : s[2] // this will assign character 'i' با صدا زدن کاراکتر & میتوانید به مقدار یک متغیر دسترسی پیدا کرد Type Casting در کاتلین در کاتلی به سادگی میتوانید Type Casting را انجام دهید var i: Int =1 var d: Double = i // Not possible var d : Double = t.toDouble() // Ok