20 ارسال در این موضوع قرار دارد

همچنان میدانید در بخش اول دیتابیس به توضیفی از sqlite پرداختیم.در صورتی مقاله اول را مطالعه نکرده اید،حتما آن را مطالعه کنید.

ابتدا یک پروژه جدید را ایجاد کنید و اسم آن را مثلا  dbAndroid  بگذارید.

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

سپس ورژن اندروید خود را مشخص کنید...که در این پروژه 2.3.3 را در نظر گرفته ایم

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

در مرحله آخر نام پکیج و اکتیویتی خود را وارد کنید.

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

دکمه finish را بزنید تا پروژه شما اماده شود.

اولین قدم برای اینکه بتوانیم از sqlite استفاده کنیم این است که یک کلاس جدید را ایجاد کنید.برای اینکار روی نام پکیچ کلیک راست و گزینه new ->class  را انتخاب کنید تا کادر زیر ظاهر شود.

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

 

بعد از ایجاد کردن کلاس باید از کلاس  SQLiteOpenHelper ارث بری کنیم .بعد از اینکار رنگ قرمزی روی نام کلاس ظاهر میشود که برای این میباشد که حتما باید توابع سازنده را ایجاد کنید.که بعد از اینکار سه تابع که در تصویر نشان داده شده اضافه میشوند.

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

بعد از اینکار ها بهتر است در قسمت general  متغیر هایی را بصورت سراسری تعریف کنیم تا در کلاس های دیگر نیز بتوانیم فراخوانی کنیم.ابتدا در تابع onCreate دستور مربوطه به ایجاد جدول را بنویسید و در تابع onUpgrade هم دستور مربوط به پاک کردن اطلاعات جدول را بنویسید.بعد  از اینکار ها میتونید در هر جای برنامه فقط با صدا زدن نام کلاس و ایجاد کردن یک شی از آن میتوانیم از دیتابیس اندروید به راحتی استفاده کنید

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

بعد از نوشتن دستورات بالا به سراغ طراحی کردن یک UI ساده میرویم تا با وارد کردن اطلاعات در دو EditText اطلاعات را در دیتابیس ذخیره کنید

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

 خروجی UI بدین صورت میباشد.

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

 

کار بدین صورت میباشد که وقتی کاربر روی دکمه save کلیک کرد اطلاعات در دیتابیس ذخیره میشود

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

در خط 13 : ابتدا باید یک شی جدید از کلاس قبلی را ایجاد کنیم

خط 14 : یک متغیر از نوع SQLiteDatabase را تعریف میکنیم تا بتوانیم عملیات های مختلف پایگاه داده را انجام دهیم

خط 15 : برای اینکه بتوانیم اطلاعات را در مکانی قرار دهیم بعد ذخیره شود از ContentValues استفاده میکنیم

در تابع OnCreate هم ابتدا خاصیت مربوط به دکمه را در حالتی وقتی که روی آن کلیک کردیم قرار میدهیم

بعد از این کارها نوبت به نوشتن کدهای ثبت اطلاعات میباشد ، بعد از انتخاب دکمه مربوطه یک پیغام چاپ میشود مینی بر اینکه اطلاعات ثبت شد.

خط 33: در این خط ما به شی db میگوییم که میتواند که اطلاعات را در دیتابیس بنویسد

خط 34: در این خط شی content را ایجاد میکنیم تا مقادیر را در آن قرار دهیم

خط های 35 و 36 مقادیر مربوط به فیلدهای name,lname  را قرار میدهد

خط 37 : اطلاعات در دیتابیس ذخیره میکند

خط 38 : یک پیغام را توسط Toast چاپ میکند

newProject.png

 

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

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

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ممنون بابت زحماتی که میکشید ...

توی آموزش اول به صورت مستقیم از کلاس SQLiteDatabase و متد openDatabase برای باز کردن پایگاه داده و از متد execSQL برای اجرای دستورهای

sql استفاده کردید اما تو این قسمت به روش دیگه ای عمل کردید میخواستم بدونم چه تفاوت هایی بین این دو روش هست ؟ 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

روش دوم بهتر هستش،چون بصورت شی گرایی پیاده سازی شده است،فقط یکبار تعریف شده و در هر اکتیویتی که میخواهید میتوانید فقط با نام آن را فراخوانی کنید..بهتر است کلیه عملیات های دیتابیسی را درون کلاس مربوطه قرار بدین

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

دوست عزیز بی زحمت عکسارو دوباره آپلود کن و ایندفعه یه جا آپلودشون کن که حذف نشن !!

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

آقای سرسیفی عزیز!

خواهشمندم عکس ها را دوباره آپلود کنید. 

این موضوع برای ما مبتدیان اساسی است.

ممنون

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

مهندس من یک برنامه از دیتابیس  را طبق روال تواکلیپس درست کردم خطاهم نداشتم اما امولاتورم خطامیگیره، امولاتور رو هم چند بار حذف کردم اما درست نشده، غیر فایل صفحه اینترنتی که ازش کپی کردم هم گذاشتم بهم جواب بدین

sql.zip

sql.zip

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

دمت گرم انشاالله هر چی از خدا میخواهی بهش برسی خواهش میکنم اسم نرم افزار را بدین وکدام نرم افزار بهتراست

من عاشق برنامه نویسی شدم ومیخوام شروع کنم بی زحمت یک راهنمای کنید منو

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ببخشید الان خط 33 به بعد کو ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟:huh:;):D

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
متوجه نشدم تو عکس که فقط تا خط 32 هست اما توضیحات تا بعدش پیش رفته ......

یعنی کدهای بقیه اش رو ننوشتن ؟ خودمون باید بنویسیم ؟

عایا این درست است که فکر کنید من اینقدر زرنگم !!!!!!!!!!!!!!!!!!!!!!!!!!!!

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
اخرش همونه دیگه!

اقا کدی که روی دکمه کلکیک میکنیم رو هم بذارید دیگه چه جوری وارد دیتا بیس کنیم

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

این کد را قرار دهید:

[shcode=java]

EditText edt_name=(EditText)findViewById(R.id.txt1);

EditText edt_family=(EditText)findViewById(R.id.txt2);

cv = new ContentValues();

db = database.getWritableDatabase();

cv.put("name",edt_name.getText().ToString());

cv.put("lname", edt_family.getText().ToString());

db.insert("students", null, cv);

[/shcode]

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

این کد را قرار دهید:

[shcode=java]

TextView edt_name=(TextView)findViewById(R.id.txt1);

TextView edt_family=(TextView)findViewById(R.id.txt2);

cv = new ContentValues();

db = database.getWritableDatabase();

cv.put("name",edt_name.getText().ToString());

cv.put("lname", edt_family.getText().ToString());

db.insert("students", null, cv);

[/shcode]

به اینصورت بنویسید

TextView edt_name=(TextView)findViewById(R.id.txt1);

                TextView edt_family=(TextView)findViewById(R.id.txt2);

                ContentValues cv=new ContentValues();

                db = database.getWritableDatabase();

                cv.put("name",edt_name.getText().toString());

                cv.put("lname", edt_family.getText().toString());

                db.insert("students", null, cv);

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

این کد را قرار دهید:

[shcode=java]

TextView edt_name=(TextView)findViewById(R.id.txt1);

TextView edt_family=(TextView)findViewById(R.id.txt2);

cv = new ContentValues();

db = database.getWritableDatabase();

cv.put("name",edt_name.getText().ToString());

cv.put("lname", edt_family.getText().ToString());

db.insert("students", null, cv);

[/shcode]

به اینصورت بنویسید

TextView edt_name=(TextView)findViewById(R.id.txt1);

                TextView edt_family=(TextView)findViewById(R.id.txt2);

                ContentValues cv=new ContentValues();

                db = database.getWritableDatabase();

                cv.put("name",edt_name.getText().toString());

                cv.put("lname", edt_family.getText().toString());

                db.insert("students", null, cv);

لینک قسمت اول آموزش خراب شده است

اگر امکان داره لینک درست رو بدید

ممنون

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای Select ، Update و  Delete چطوری باید عمل کرد ؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

روش پیاده سازیتون خیلی خیلی سخته !!

در آینده ای نزدیک انشاالله یک برنامه ای که دارای لیستی با مقدارگیری delet, favorit هست رو میذارم که هر کسی میتونه ازش استفاده کنه !!

:)

موفق باشید

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

باسلام. ببخشید توضیحات خط 33 به بعد با تصویر فرق می کنه. میشه تصاویر رو دوباره بفرستید

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

بنده ی سری اطلاعات رو از دیتابیس سرور میگیرم و داخل دیتابیس داخل اندروید انتقال میدم

که برای لیست علاقه مندی هادرستش کردم برنامه درست کارمیکنه ولی بعضی وقتا کرش میکنه

و این خط ارور رومیده لطفا راهنمایی کنید ممنون

android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file (code 14): , while compiling: PRAGMA journal_mode

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

این خطا میگه که نمی تونه دیتابیس رو باز کنه

 

آیا مطمئن هستید دیتایسی وجود داره که بتونه ازش بخونه و یا داخلش بنویسه ؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط masoudandroid
      سلام
      یه مشکلی دارم خیلی وقته گیرشم لطفا کسی اگر آشناست به این قضیه کمک کنه.
      زمانی که کد رنگ رو تو RelativeLayout مینوسم eror میده و یا یه پوشه از drawable میزارم
      اما Linear اینطور نیست و مشکلی نداره.
      یه عکس گذاشتم اونی که خط قرمز زیرش کشیده.....ممنون از شما

    • توسط Omid Zakeri
      این فریمورک مختص اندروید طراحی نشده ولی سبک بودن آن موجب شده‌است که بسیاری از برنامه نویسان از آن در برنامه‌های اندرویدی استفاده کنند. این فریم ورک جهت اتصالات JDBC وSpring و اندروید طراحی شده است.
       
       
      @DatabaseTable(tableName = "users") public class User { @DatabaseField(id = true) private String username; @DatabaseField private String password; public User() { // ORMLite needs a no-arg constructor } public User(String username, String password) { this.username = username; this.password = password; } // Implementing getter and setter methods public String getUserame() { return this.username; } public void setName(String username) { this.username = username; } public String getPassword() { return this.password; } public void setPassword(String password) { this.password = password; } }
    • توسط Omid Zakeri
      با آمدن ORM‌ها به دنیای برنامه نویسی، کار برنامه نویسی نسبت به قبل ساده‌تر و راحت‌تر شد. عدم استفاده کوئری‌های دستی، پشتیبانی از چند دیتابیس و از همه مهمتر و اصلی‌ترین هدف این ابزار "تنها درگیری با اشیا و مدل شیء گرایی" کار را پیش از پیش آسان‌تر نمود.
      در این بین به راحتی می‌توان چندین نمونه از این ORM‌ها را  نام برد مثل IBatis , Hibernate ,Nhibernate و EF که از معروفترین آن‌ها هستند.
      من در حال حاضر قصد شروع یک پروژه اندرویدی را دارم و دوست دارم بجای استفاده‌ی از Sqlitehelper، از یک ORM مناسب بهره ببرم که چند سوال برای من پیش می‌آید. آیا ORM ای برای آن تهیه شده است؟ اگر آری چندتا و کدامیک از آن‌ها بهتر هستند؟ شاید در اولین مورد کتابخانه‌ی Hibernate جاوا را نام ببرید؛ ولی توجه به این نکته ضروری است که ما در مورد پلتفرم موبایل و محدودیت‌های آن صحبت می‌کنیم. یک کتابخانه همانند Hibernate مطمئنا برای یک برنامه اندروید چه از نظر حجم نهایی برنامه و چه از نظر حجم بزرگش در اجرا، مشکل زا خواهد بود و وجود وابستگی‌های متعدد و دارا بودن بسیاری از قابلیت‌هایی که اصلا در بانک‌های اطلاعاتی موبایل قابل اجرا نیست، باعث می‌شود این فریمورک انتخاب خوبی برای یک برنامه اندروید نباشد.

      معیارهای انتخاب یک فریم ورک مناسب برای موبایل: 
      سبک بودن: مهمترین مورد سبک بودن آن است؛ چه از لحاظ اجرای برنامه و چه از لحاظ حجم نهایی برنامه سریع بودن: مطمئنا ORM‌های طراحی شده‌ی موجود، از سرعت خیلی بدی برخوردار نخواهند بود؛ اگر سر زبان هم افتاده باشند. ولی باز هم انتخاب سریع بودن یک ORM، مورد علاقه‌ی بسیاری از  ماهاست. یادگیری آسان و کانفیگ راحت تر. greenDAO-master.zip
    • توسط Omid Zakeri
      تا به حال نرم افزار های زیادی از قبیل توییتر(twitter) , گوگل پلاس (+google) , جیمیل (gmail)  را در اندروید دیده‌ایم که باswipe/pull down ( کشیدن صفحه به سمت پایین) محتوای خود را بروز میکنند . زمانی که صفحه را از بالا به پایین میکشیم یک محتوای جدیدی به ما نشان داده می‌شود یا اینکه محتوای قبلی بروزرسانی خواهد شد.  در این آموزش میخواهیم کار با SwipeRefreshLayout را آموزش دهیم. این لایه به ما کمک می‌کند که طراحی اصولی (material designn) و کاربر پسندی را در برنامه های خود داشته باشیم.
       
      در یک آموزش مختصر با ما باشید تا به طور ساده با  نحوه کار SwipeRefreshLayout (کشیدن صفحه به سمت پایین) آشنا شویم.
      این مثال نحوه ی Refresh(تازه سازی) کردن صفحه با استفاده از SwipeRefreshLayout را به شما نشان  میدهد.مراحل را طبق زیر دنبال کنید.
      1-با استفاده ار اندروید استودیو یک پروژه ی جدید با نام Swipe تحت بسته ی com.example.Swipeایجاد کنید. نحوه ی ایجاد پروژه ی جدید در بخش آموزشی ساخت اولین پروژه در اندروید استودیو توضیح داده شده است.
      2-
      محتوای فایل res/layout/activity_main.xml را مانند آنچه در ادامه آمده است تغییر دهید. 3-محتوای فایل اکتیویتی اصلی java/com.example.sendemail/MainActivity.java را به منظور اجرای کدهای دلخواه پس از انجام عمل swipe/pull downn (کشیدن صفحه به سمت پایین)مانند آنچه در ادامه آمده است تغییر دهید.
      محتوای زیر مربوط به فایل res/layout/activity_main.xml می باشد.
      <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mySwipe" android:layout_width="match_parent" android:layout_height="match_parent" > <!-- کد خود را اینجا وارد کنید--> </android.support.v4.widget.SwipeRefreshLayout>   این لایه(بالا) از کتابخانه‌ی زیر است.  
       
      android.support.v4.widget
      در کد بالا ما لایه‌ی SwipeRefreshLayout را به عنوان لایه‌ی والد یا ریشه استفاده کرده ایم و درون آن می‌توانیم لایه ها و عناصر دیگر را به کار ببریم.
      به عنوان مثال میتوان به صورت زیر نوشت. <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mySwipe" android:layout_width="match_parent" android:layout_height="match_parent" > <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="من یک متن هستم" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:gravity="center"/> </ScrollView> </android.support.v4.widget.SwipeRefreshLayout>  
      معمولا درون این لایه یک recyclerView  یا listView به کار می‌رود که در صورت تازه سازی (refresh) مقادیر آیتم ها دچار تغییر شوند(آیتم جدیدی  وارد لیست شده یا از آن حذف شود). همچنین این لایه می‌تواند به عنوان یک لایه ی فرزند ظاهر شود.
      حالا نوبت این است که در اکتیویتی (activity) خود این لایه را وصل کنیم و از آن استفاده کنیم.در زیر محتوای فایل java/com.example.location/MainActivity.java آورده شده است.
      package com.example.Swipe; import android.os.Bundle; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { SwipeRefreshLayout mySwipe; @Override protected void onCreate(Bundle savedInstanceState) { ;( super.onCreate(savedInstanceState ;( setContentView(R.layout.activity_main ;( mySwipe = (SwipeRefreshLayout) findViewById(R.id.mySwipe () mySwipe.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener { @Override () public void onRefresh{ //اعمالی را که میخواهیم هنگام تازه سازی انجام شود ;( mySwipe.setRefreshing(false } ;({ } }     داخل کد بالا ما با صدا زدن متد setOnRefreshListener با ورودی رابط (interface) OnRefreshListener می‌توان متد onRefresh را بازنویسی (override) کرده و داخل آن هر عملی که برای تازه سازی لازم است انجام داد. برای مثال زمانی که ما برنامه ای متصل به اینترنت داریم و میخواهیم با swipe کردن مقادیر را بروزرسانی کنیم در متد onRefresh میتوانیم وضعیت اتصال به اینترنت را چک کنیم و اگر متصل بود دیتا را از اینترنت دریافت کرده و مقادیر محتوای صفحه را بروزرسانی کنیم. در اخر کد با نوشتن mySwipe.setRefreshing(false) انیمیشن ایجاد شده را متوقف میکنیم.
      اگر در جایی از برنامه بخواهیم خاصیت swipe pull down و انیمیشن را غیر فعال کنیم میتوانیم از دستور setEnabled(false) استفاده کنیم.
    • توسط Omid Zakeri
      ویجت یک برنامه ی کوچک و یا یک کنترل از برنامه ی اندروید شما می باشد که در صفحه ی home  قرار گرفته است.  ویجت ها می توانند به راحتی در دسترس باشند، چرا که به شما اجازه می دهند تا برنامه های مورد علاقه ی خود را روی صفحه home قرار دهید تا به سرعت به آنها دسترسی داشته باشید. احتمالا چند ویجت متداول از جمله ویجت موسیقی، آب و هوا و ساعت، را دیده اید.
      ویجت ها می توانند انواع مختلفی داشته باشند از قبیل ویجت اطلاعات، ویجت های مجموعه، ویجت های کنترل و ویجت های چندگانه. اندروید یک چارچوب کامل به ما ارائه می دهد تا ویجت های خود را گسترش دهیم.
       
      Widget - XML file
      برای ایجاد یک ویجت کاربردی، ابتدا چیزی که نیاز دارید، شی Object AppWidgetProviderInfo است که شما در یک فایل XML ویجت جداگانه تعریف می کنید. برای انجام این کار، بر روی پروژه خود راست کلیک کرده و یک پوشه جدید به نام xml ایجاد کنید. حالا روی پوشه تازه ایجاد شده راست کلیک کرده و یک فایل XML جدید ایجاد کنید. نوع منبع فایل XML باید به AppWidgetProvider تنظیم شود. در فایل xml برخی از خواص را به صورت زیر تعریف می کنید:
      <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="146dp" android:updatePeriodMillis="0" android:minHeight="146dp" android:initialLayout="@layout/activity_main"> </appwidget-provider> Widget - Layout file
      حالا شما باید طرح ویجت خود را در فایل پیش فرض XML خود تعریف کنید. شما می توانید قطعات را برای تولید xml خودکار بکشید.
      Widget - Java file
      پس از تعریف طرح، در حال حاضر یک فایل JAVA جدید ایجاد کنید یا از موجود استفاده کنید و آن را با کلاس AppWidgetProvider گسترش دهید و روش بهروزرسانی آن را به صورت زیر تعریف کنید.
      در روش به روز رسانی، شما باید شیء دو کلاس را که PendingIntent و RemoteViews هستند تعریف کنید. نحو آن :
      PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0); RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.activity_main);  
      Widget - Manifest file
      شما همچنین باید AppWidgetProvider را در فایل manifest خود به شرح زیر اعلام کنید:
      <receiver android:name="ExampleAppWidgetProvider" > <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/example_appwidget_info" /> </receiver>  
      MainActivity.java
      package com.example.omidza.myapplication; import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.widget.RemoteViews; import android.widget.Toast; public class MainActivity extends AppWidgetProvider{ public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) { for(int i=0; i<appWidgetIds.length; i++){ int currentWidgetId = appWidgetIds[i]; String url = "http://www.tutorialspoint.com"; Intent intent = new Intent(Intent.ACTION_VIEW); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setData(Uri.parse(url)); PendingIntent pending = PendingIntent.getActivity(context, 0,intent, 0); RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.activity_main); views.setOnClickPendingIntent(R.id.button, pending); appWidgetManager.updateAppWidget(currentWidgetId,views); Toast.makeText(context, "widget added", Toast.LENGTH_SHORT).show(); } } } res/layout/activity_main.xml
      <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:transitionGroup="true"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Tutorials point" android:id="@+id/textView" android:layout_centerHorizontal="true" android:textColor="#ff3412ff" android:textSize="35dp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Widget" android:id="@+id/button" android:layout_centerHorizontal="true" android:layout_marginTop="61dp" android:layout_below="@+id/textView" /> </RelativeLayout> res/xml/mywidget.xml.
      <?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="146dp" android:updatePeriodMillis="0" android:minHeight="146dp" android:initialLayout="@layout/activity_main"> </appwidget-provider> AndroidManifest.xml
      <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.omidza.myapplication" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <receiver android:name=".MainActivity"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/mywidget"></meta-data> </receiver> </application> </manifest>  

  • دوره آموزشی اندروید آموزش ویدئویی اندروید آموزش برنامه نویسی اندروید اندروید کاپ دوره آنلاین اندروید کتاب های آموزشی اندروید بسته آموزشی اندروید دوره برنامه نویسی اندروید آموزش Kotlin آموزش برنامه نویسی ios مهارت های فروش
    آموزش برنامه نویسی اندروید
  • فایل