رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

آموزش پیاده سازی دیتابیس اندروید همراه با مثال عملی

در این اموزش میتوانید یک دیتابیس اندروید ایجاد کنید که توانایی افزودن اطلاعات،ویرایش اطلاعات ،حذف و لیست گیری اطلاعات باشید.

 

ابتدا  یک کلاس برای ایجاد SqliteopenHelper دیتایس و جداول ایجاد میکنیم و متدهای مورد نظر را نیز در ادامه مینویسیم

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Hashtable;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.DatabaseUtils;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase;

public class DBHelper extends SQLiteOpenHelper {

   public static final String DATABASE_NAME = "MyDBName.db";
   public static final String CONTACTS_TABLE_NAME = "contacts";
   public static final String CONTACTS_COLUMN_ID = "id";
   public static final String CONTACTS_COLUMN_NAME = "name";
   public static final String CONTACTS_COLUMN_EMAIL = "email";
 public static final String CONTACTS_COLUMN_PHONE = "phone";
   private HashMap hp;

   public DBHelper(Context context) {
      super(context, DATABASE_NAME , null, 1);
   }

   @Override
   public void onCreate(SQLiteDatabase db) {
      // TODO Auto-generated method stub
      db.execSQL(
         "create table contacts " +
         "(id integer primary key, name text,phone text,email text)"
      );
   }

   @Override
   public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
      // TODO Auto-generated method stub
      db.execSQL("DROP TABLE IF EXISTS contacts");
      onCreate(db);
   }

   public boolean insertContact (String name, String phone, String email) {
      SQLiteDatabase db = this.getWritableDatabase();
      ContentValues contentValues = new ContentValues();
      contentValues.put("name", name);
      contentValues.put("phone", phone);
      contentValues.put("email", email);	
      db.insert("contacts", null, contentValues);
      return true;
   }
   
   public Cursor getData(int id) {
      SQLiteDatabase db = this.getReadableDatabase();
      Cursor res =  db.rawQuery( "select * from contacts where id="+id+"", null );
      return res;
   }
   
   public int numberOfRows(){
      SQLiteDatabase db = this.getReadableDatabase();
      int numRows = (int) DatabaseUtils.queryNumEntries(db, CONTACTS_TABLE_NAME);
      return numRows;
   }
   
   public boolean updateContact (Integer id, String name, String phone, String email) {
      SQLiteDatabase db = this.getWritableDatabase();
      ContentValues contentValues = new ContentValues();
      contentValues.put("name", name);
      contentValues.put("phone", phone);
      contentValues.put("email", email);
      db.update("contacts", contentValues, "id = ? ", new String[] { Integer.toString(id) } );
      return true;
   }

   public Integer deleteContact (Integer id) {
      SQLiteDatabase db = this.getWritableDatabase();
      return db.delete("contacts", 
      "id = ? ", 
      new String[] { Integer.toString(id) });
   }
   
   public ArrayList<String> getAllCotacts() {
      ArrayList<String> array_list = new ArrayList<String>();
      
      //hp = new HashMap();
      SQLiteDatabase db = this.getReadableDatabase();
      Cursor res =  db.rawQuery( "select * from contacts", null );
      res.moveToFirst();
      
      while(res.isAfterLast() == false){
         array_list.add(res.getString(res.getColumnIndex(CONTACTS_COLUMN_NAME)));
         res.moveToNext();
      }
      return array_list;
   }
}

 

سپس واسط کاربری گرافیکی Layout را طراحی میکنیم  activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:id="@+id/scrollView1"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   tools:context=".MainActivity" >

   <LinearLayout
      android:orientation="vertical"
      android:layout_width="match_parent"
      android:layout_height="370dp">

      <EditText
         android:id="@+id/editTextName"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:ems="10"
         android:inputType="text" >
      </EditText>

      <EditText
         android:id="@+id/editTextEmail"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginTop="22dp"
         android:ems="10"
         android:inputType="textEmailAddress" />

      <EditText
         android:id="@+id/edit_phone"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" />

      <Button
         android:id="@+id/button1"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginBottom="28dp"
         android:text="@string/save" />

    

     



   </LinearLayout>
</ScrollView>

آموزش دیتابیس sqlite در اندروید

برای ذخیره اطلاعات در دیتابیس.میبایستی در اکتیویتی دیتابیس را new کنید تا بتوانید که اطلاعات را در دیتابیس فراخوانی کنید

افزودن اطلاعات :

public class MainActivity extends AppCompatActivity {
 
   DBHelper mydb;
  EditText editTextName,editTextEmail,edit_phone;
Button button1;
   
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      editTextName=(EditText)findViewById(R.id.editTextName);
      editTextEmail=(EditText)findViewById(R.id.editTextEmail);
       edit_phone=(EditText)findViewById(R.id.edit_phone);
      button1=(Button)findViewById(R.id.button1);
      mydb = new DBHelper(this);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

		  String name=editTextName.getText().toString();
          String email=editTextEmail.getText().toString();
          String phone=edit_phone.getText().toString();
          mydb.insertContact(name,email,phone);


            }
        });
      

   }

 

بزودی آموزش تکمیل میگردد.

 

دوره آموزشی اندروید

http://android-learn.ir/online-learning/android-development-training/guruPrograms/1-android-programming/2-programming-mobile-applications-for-android

 

 

 

 

 

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 1 سال بعد...

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

  • مطالب مشابه

    • توسط 3245
      سلام
      من درحال اموزش اندروید هستم،
      برای این کار، ویدیوهای ساخت کتاب رو خریدم، اما چون اطلاعاتم خیلی کمه،درک مطالب توی این ویدئو سخته برام
      میخواستم اگرممکنه دوستان کلیپی پیشنهاد بدن که سبک تر باشه و بیشتر به مباحث پایه بپردازه، البته خیلی هم نخواد از صفر شروع کنه که خسته کننده میشه...
      طوری باشه پروژه محور باشه اما پروژه سبکی باشه.
       
      ممنون.
       
       
    • توسط Zeynab Tri
      سلام. دوستان بنده یک عدد تازه کار در برنامه نویسی اندروید هستم و نمیدونم این ارور رو چطور حل کنم. ممنون میشم اگر کسی میتونه من رو راهنمایی کنه.عکسش رو گذاشتم.

    • توسط elecomco
      وقتی شما یک اپلیکیشن اندروید درست می کنید، باید یه جوری بفهمید که آیا برنامه ای که ساخته اید درست کار می کند یا نه؟ در این مقاله می خواهیم شما را با نحوه اشکال زدایی پروژه با ADB اندروید استودیو آشنا کنیم.   
      اجرا و اشکال زدایی یا دیباگ اپلیکیشن در یک دستگاه سخت افزاری با ADB اندروید 
      یکی از مسائل مهم بعد از ساخت برنامه اندروید، این است که همیشه قبل از انتشار اپلیکیشن برای کاربران، برنامه را بر روی یک دستگاه واقعی آزمایش کنید. به همین منظور در این مقاله می خواهیم شما را با نحوه تنظیم محیط توسعه اندروید یا همان پلتفرم اندروید استودیو (Android Studio) و دستگاه اندروید برای آزمایش و اشکال زدایی از طریق اتصال ( Android Debug Bridge  (ADB آشنا کنیم.
      Android Debug Bridge که با نام ADB اندروید یا پل اشکال زدایی اندروید نیز شناخته می شود یک ابزار تحت خط فرمان جهت ارتباط و کنترل شبیه ساز (Emulator) یا دستگاه اندرویدی متصل به سیستم است و دستورات کاربردی متعددی نظیر نصب برنامه بر روی محیط شبیه ساز ، دسترسی به فایل های مستقر بر روی شبیه ساز و … را برای برنامه نویس فراهم می کند تا بتواند اپلیکیشن خود را تست و اشکال زدایی کند.
      با استفاده از شبیه ساز اندروید (Android emulator)، می توانید برنامه خود را در نسخه های مختلف دستگاه های اندرویدی  با اندازه های مختلف صفحه نمایش آزمایش کنید.
      تنظیم دستگاه برای توسعه اپلیکیشن اندروید ساخته شده 
      قبل از شروع اشکال زدایی در دستگاه، چند کار وجود دارد که باید انجام دهید:
      Settings اپلیکیشن را باز کنید. سپس گزینه Developer options را انتخاب کنید. در نهایت USB debugging را انتخاب کنید. سیستم خود را برای شناسایی دستگاه خود تنظیم کنید. macOS: به تنظیمات اضافی لازم نیست. Ubuntu Linux: برای نصب پکیج adb از apt-get install استفاده کنید. این مجموعه ای پیش فرض از قوانین udev با حفظ جامعه برای همه دستگاه های اندروید را به شما می دهد. اطمینان حاصل کنید که در گروه plugdev هستید. اگر پیام خطای زیر را مشاهده کردید ، adb شما را در گروه plugdev پیدا نکرد:
      error: insufficient permissions for device: udev requires plugdev group membership از idاستفاده کنید تا ببینید چه گروه هایی در آن هستید. از  sudo usermod -aG plugdev $LOGNAME استفاده کنید تا خود را به گروه plugdev اضافه کنید.
      مثال زیر نحوه نصب بسته ابزارهای Android adb را نشان می دهد.
      error: insufficient permissions for device: udev requires plugdev group membership ویندوز: درایور USB را برای ADB نصب کنید. Chrome OS: به پیکربندی اضافی لازم نیست. به دستگاه خود متصل شوید 
      هنگامی که به USB تنظیم و وصل شده اید، می توانید بر روی Run در اندروید استودیو (Android Studio) کلیک کنید تا برنامه خود را روی دستگاه ایجاد و اجرا کنید.
      برای صدور دستورات همچنین می توانید از ADB اندروید استفاده کنید:
      تأیید کنید که دستگاه شما با اجرای دستور adb devices از فهرست  android_sdk/platform-tools/ متصل است. در صورت اتصال، دستگاه ذکر شده را مشاهده خواهید کرد. برای هدف قرار دادن دستگاه خود ، هر  adb command  را با فلگ -d صادر کنید. عیب یابی اتصال دستگاه با Connection Assistant
      Connection Assistant دستورالعمل های گام به گام برای کمک به شما در تنظیم و استفاده از دستگاه از طریق اتصال ADB فراهم می کند.
      برای شروع Tools > Connection Assistant را انتخاب کنید.
      Connection Assistant دستورالعمل ها، کنترل های in-context و لیستی از دستگاه های متصل را در یک سری صفحه در پنل Assistant ارائه می دهد. از دکمه های Next و Previous در پایین پنل Assistant استفاده کنید تا در صورت لزوم از طریق صفحات استفاده کنید:
      دستگاه خود را از طریق USB متصل کنید: Connection Assistant با این کار از شما خواسته می خواهد که دستگاه خود را از طریق USB متصل کنید و یک دکمه Rescan USB را فراهم می کند که با استفاده از آن می توانید اسکن جدیدی را برای دستگاه های متصل آغاز کنید. فعال کردن اشکال زدایی USB: ابزار Connection Assistan به شما می گوید چگونه می توانید USB را در گزینه های on-device developer فعال کنید. راه اندازی مجدد سرور ADB اندروید: سرانجام، اگر هنوز دستگاه خود را در لیست دستگاه های موجود نمی بینی، می توانید از دکمه Restart ADB server در آخرین صفحه Connection Assistan استفاده کنید. راه اندازی مجدد سرور ADB همچنین باعث می شود ADB اندروید دوباره دستگاه ها را اسکن کند. اگر هنوز دستگاه خود را در لیست دستگاههای موجود نمی بینید، مراحل عیب یابی را در قسمت بعدی این صفحه امتحان کنید. مشکلات اتصال USB را برطرف کنید
      اگر Connection Assistan دستگاه شما را از طریق USB تشخیص نمی دهد، می توانید مراحل عیب یابی زیر را برای حل این مشکل امتحان کنید:
      بررسی کنید که اندروید استودیو بتواند به Android Emulator متصل شود.
      برای بررسی اینکه آیا این مسئله به دلیل وجود مشکل اتصال بین Android Studio و Android Emulator ایجاد شده است ، این مراحل را دنبال کنید:
      AVD Manager را باز کنید. اگر قبلاً آنرا ندارید ، یک AVD جدید ایجاد کنید. شبیه ساز را با استفاده از AVD خود اجرا کنید. یکی از موارد زیر را انجام دهید: اگر اندروید استودیو (Android Studio) نمی تواند به شبیه ساز متصل شود ، آخرین ابزارهای Platform SDK را دانلود کنید و دوباره امتحان کنید. اگر شبیه ساز با موفقیت شروع شد ، کابل USB را بررسی کنید. کابل USB را بررسی کنید
      برای بررسی اینکه آیا مشکل ناشی از کابل USB معیوب ایجاد شده است ، مراحل موجود در این بخش را دنبال کنید.
      اگر کابل USB دیگری دارید:
      دستگاه را با استفاده از کابل ثانویه وصل کنید. بررسی کنید آیا دستیار اتصال اکنون می تواند دستگاه را تشخیص دهد یا خیر. اگر دستگاه شناسایی نشد ، کابل اولیه را دوباره امتحان کنید. اگر دستگاه هنوز شناسایی نشده است ، فرض کنید که مشکل دستگاه است و بررسی کنید که دستگاه برای توسعه تنظیم شده است یا خیر. اگر کابل USB دیگری ندارید اما دستگاه Android دیگری دارید:
      دستگاه ثانویه را به رایانه متصل کنید. اگر دستیار اتصال می تواند دستگاه ثانویه را تشخیص دهد ، فرض کنید که مشکل دستگاه اصلی است و بررسی کنید که آیا دستگاه برای توسعه تنظیم شده است یا خیر.
      اگر دستگاه ثانویه شناسایی نشود ، ممکن است مشکل در کابل USB باشد. بررسی کنید که دستگاه برای توسعه تنظیم شده است یا خیر 
      برای بررسی اینکه آیا مشکل ناشی از تنظیمات دستگاه ایجاد شده است ، این مراحل را دنبال کنید:
      مراحل موجود در بخش تنظیم دستگاه برای توسعه را دنبال کنید.  اگر این مشکل را برطرف نکرد، برای کمک به پشتیبانی مشتری OEM دستگاه تماس بگیرید. به نماینده پشتیبانی مشتری بگویید که دستگاه با استفاده از ADB به Android Studio وصل نخواهد شد. کلید امنیتی RSA 
      وقتی دستگاهی را اجرا می کنید که دارای سیستم عامل Android 4.2.2 (سطح API 17) یا بالاتر است، سیستم از طریق کادر محاوره ای به شما نشان می دهد که آیا می خواهید یک کلید RSA را بپذیرید که امکان اشکال زدایی از طریق این رایانه را بپذیرد یا خیر. این مکانیسم امنیتی از دستگاههای کاربر محافظت می کند زیرا تضمین می کند اشکال زدایی USB و سایر دستورات adb را نمی توان اجرا کرد مگر اینکه شما قادر به باز کردن قفل دستگاه و تأیید این پیام باشید.
    • توسط elecomco
      آیا می‌خواهید برنامه اندروید بعدی خود را بسازید ، اما مطمئن نیستید که کدام زبان برنامه‌نویسی برای شما بهترین انتخاب است؟ در این مقاله به زبان هایی خواهم پرداخت که برای توسعه برنامه های اندروید بعدی ممکن است از آنها استفاده کنم.
      اندروید پذیرفته ترین سیستم عامل موبایل در جهان است. اندروید توسط گوگل توسعه داده شد و یک سیستم‌عامل باز مبتنی بر لینوکس است. اندروید کاملا متن باز است و هر شرکت یا فردی می‌تواند آن را دانلود کرده و از آن برای محصولات خود استفاده کند. در اصل ، این سیستم عامل از طریق شرکت اندروید برای دوربین‌های دیجیتال و موبایل طراحی شد. شرکت اندروید در سال ۲۰۰۵ توسط گوگل خریداری شد. در حال حاضر ، ۲.۳ میلیارد تلفن هوشمند اندروید در جهان وجود دارد.
      اندروید نه تنها از دو میلیارد تلفن هوشمند ، لپ‌تاپ ، تبلت  و کامپیوترهای شخصی پشتیبانی میکند ، بلکه اندروید قلب تپنده میلیاردها دستگاهی است که در زندگی روزمره خود از آنها استفاده می‌کنید. برخی از این وسایل عبارتند از: تلویزیون ، سیستم‌های امنیت خانگی ، یخچال و فریزر ، باکس های تلویزیونی ، دوربین ها ، ماشین ها ، سیستم‌های ناوبری ، تبلت های هوشمند ، بازی رایانه‌ای و وسایل خانگی هوشمند.
      چه زبان‌های برنامه‌نویسی می‌توانند برای توسعه برنامه‌های کاربردی تلفن همراه به کار روند؟ در اینجا لیستی از رایج‌ترین زبان‌های برنامه‌نویسی برای توسعه برنامه‌های اندروید آورده شده است : 
      Java Kotlin #C Python ++C
      جاوا
      زبان جاوا محبوب‌ترین زبان برنامه‌نویسی در این زمینه است. جاوا یک زبان برنامه‌نویسی استاتیک ، همه منظوره و متن باز است. جاوا از زمان راه‌اندازی سیستم‌عامل اندروید , زبان برنامه‌نویسی اولیه این سیستم عامل بوده است . جاوا در شرکت سان میکروسیستمز توسط James Gosling در سال ۱۹۹۵ ساخته شد. این زبان برنامه نویسی در حال حاضر متعلق به اوراکل است.
      جاوا براساس ++c  ساخته شد تا یادگیری آن برای توسعه دهندگان ساده باشد. این زبان همراه با ++c بهترین زبان‌های برنامه‌نویسی برای دانشجویان و افراد تازه کار برای یادگیری اصول برنامه‌نویسی هستند. زبان جاوا توسط بسیاری از دانشگاه‌ها به عنوان اولین زبان برنامه‌نویسی برای آموزش به دانشجویان استفاده میشود.
      برخلاف زبان های سوئیفت، سی شارپ و کاتلین ممکن است جاوا زبان برنامه‌نویسی مدرنی نباشد و مانند زبان های دیگر مدام بروزرسانی نشود. با این حال , زبان جاوا نقطه شروعی را برای توسعه دهندگان جدید مشخص میکند. یادگیری زبان جاوا در مقایسه با کاتلین بسیار ساده‌تر است. اگر یک توسعه دهنده تازه کار هستید و میخواهید توسعه اندروید را یاد بگیرید , جاوا یکی از آسان‌ترین راه‌ها برای شروع است.
      کاتلین
      کاتلین یک زبان برنامه‌نویسی مدرن , دقیق , ایمن , شی گرا و سازگار با همه ی پلتفرم هاست که توسط یک شرکت نرم‌افزاری به نام JetBrains در سال ۲۰۱۱ ساخته شده‌است. این زبان برای ساخت نرم‌افزارهای کاربردی , برنامه های اندروید و برنامه‌های بومی استفاده می‌شود. در حال حاضر گوگل توسط شرکت گوگل پشتیبانی میشود.
      زبان کاتلین از زمان انتشار Android Studio ۳,۰ در اکتبر سال ۲۰۱۷  به عنوان زبان برنامه‌نویسی رسمی برای اندروید استفاده شده‌است. این زبان برای طراحی برنامه‌های کاربردی ، ساخت اپلیکیشن های مدرن و ارائه قابلیت‌های جدید برای توسعه دهندگان طراحی شده است. کاتلین برای شما سادگی , انعطاف‌پذیری و بهره‌وری را فراهم می آورد.
      کد های نوشته شده در این زبان نسبت به زبان جاوا کوتاه تر و تمیز تر است. برای پروژ های اندروید بعدی شدیدا ً توصیه می‌کنم که از این زبان استفاده کنید . 
      #C
      زبان #C توسط Anders Hejlsberg در مایکروسافت در سال ۲۰۰۰ ایجاد شد. سی شارپ یک زبان برنامه‌نویسی ساده ، انعطاف‌پذیر ، ایمن ، و متن باز است. این زبان یکی از پراستفاده ترین زبان‌های برنامه‌نویسی در جهان است. سی شارپ به توسعه‌دهندگان اجازه می‌دهد تا تمام برنامه‌های کاربردی از قبیل ویندوز ، کنسول‌ها ، برنامه‌های وب ، برنامه‌های موبایل ، و سیستم‌های backend را بسازند.
      برنامه نویسان سی شارپ می‌توانند برنامه‌های کاربردی ios و اندروید را با کمک Xamarin بسازند . Xamarin به عنوان بخشی از ویژوال استادیو ابزاری است که به توسعه دهندگان اجازه میدهد کدهای سی شارپ خود را به برنامه های بومی اندروید و یا ios تبدیل کنند. سی شارپ طراحان را قادر می‌سازد که برنامه‌های کاربردی ios بومی و اندروید را بدون آگاهی از یک زبان برنامه‌نویسی جدید بسازند.
      پایتون
      پایتون یکی از رایج‌ترین زبان‌های برنامه‌نویسی زمانه اخیر است. پایتون که توسط Guido van Rossum در سال ۱۹۹۱ ایجاد شد. این زبان متن باز ، سطح بالا و همه منظوره است. پایتون یک زبان برنامه‌نویسی پویا است که از پارادایم‌های توسعه شی گرا ، تابعی و رویه‌ای پشتیبانی می‌کند. این زبان در برنامه‌نویسی یادگیری ماشین بسیار محبوب است. در توسعه نرم‌افزار های اندروید ، پایتون جهت ایجاد کتابخانه‌ها ، توابع ، و دیگر وظایف پردازش به کار می‌رود .
      ++C
      ++C یکی از قدیمی‌ترین و محبوب‌ترین زبان‌های برنامه‌نویسی است. ++C برای ساختن رابط های کاربری یا صفحات برنامه استفاده نمی‌شود. در فرآیند توسعه اندروید ، ++C برای ساختن API ها و وظایف backend استفاده می‌شود. توسعه دهندگان front end درگیر توسعه ++C نیستند ، بلکه کارکرد این زبان بیشتر مربوط به API هاست که مربوط به بخش back-end است. کتابخانه های معروفی در + +C  وجود دارند که برای توسعه دهندگان Android در دسترس هستند و میتوانند از آنها در برنامه های خود استفاده کنند.

      نتیجه‌گیری
      اندروید رایجترین سیستم‌عامل در دنیا است. برای ساخت اپلیکیشن اندروید از دو زبان برنامه‌نویسی اصلی یعنی جاوا و کاتلین استفاده شده‌است. در حالی که زبان برنامه‌نویسی جاوا یک زبان برنامه‌نویسی قدیمی است اما زبان کاتلین یک زبان سریع واضح و در حال تکامل است. اگر شما یک توسعه دهنده جدید هستید و به تازگی می‌خواهید توسعه برنامه های اندرویدی را شروع کنید، پیشنهاد من به شما زبان کاتلین است.
             
  • فایل

×
×
  • اضافه کردن...