جستجو در انجمن

در حال نمایش نتایج برای برچسب های 'برنامه نویسی اندروید'.



تنظیمات بیشتر جستجو

  • جستجو بر اساس برچسب

    برچسب ها را با , از یکدیگر جدا نمایید.
  • جستجو بر اساس نویسنده

نوع محتوا


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

  • اندروید
    • ابزار های برنامه نویسی اندروید
    • آموزش برنامه نویسی اندروید
    • رفع مشکلات و سوالات
    • امنیت در اندروید
    • پروژه های اندروید
  • پشتیبانی اندروید
    • اندروید Lollipop
    • اندروید marshmallow
    • اندروید nougat
    • اندروید Oreo
  • کاتلین (Kotlin)
    • آموزش های برنامه نویسی Kotlin
    • سوالات و رفع مشکلات Kotlin
  • مباحث مرتبط با اندروید
    • ابزارها و سایتهای مفید
    • گرافیک موبایل
    • آموزش های ویدئویی
    • برنامه نویسی جاوا
  • تکنولوژی های اندروید
    • وب موبایل
    • توسعه اندروید با #C
    • توسعه اندروید با Basic4Android
  • متفرقه
    • اپلیکیش های ایرانی
    • برنامه نویسی
    • درخواست همکاری
    • مباحث متفرقه
    • مهارتهای فروش و بازاریابی
  • پشتیبانی محصولات مارکت
    • پرسش و پاسخ مرتبط با مارکت انجمن اندروید ایران
    • پشتیبانی مارکت پروژه های اندروید
    • پشتیبانی مارکت آموزش اندروید
    • پشتیبانی مارکت گرافیک موبایل
  • انجمن اندروید ایران
    • اخبار و اعلانات
    • صندوق پيشنهادات و انتقادات
    • تازه‌های دنیای کامپیوتر و فناوری
    • قوانین انجمن تخصصی اندروید ایران

دسته ها

  • پروژه اندروید
    • سورس پروژه اندروید
    • کامپوننت های اندروید
    • کتابخانه های اندروید
  • آموزش اندروید
    • فیلم آموزشی کاربردی
    • مقالات آموزشی اندروید
  • گرافیک موبایل
    • قالب طراحی اپلیکیشن
  • اپلیکیشن های اندروید
    • کاربردی
    • کسب و کار
    • آموزش
    • کتاب‌ها و منابع
    • ویدئو و رسانه
    • بازی‌

تقویم ها

  • Community Calendar

234 نتیجه پیدا شد

  1. ساخت لیست سفارشی در اندروید در این تاپیک به مبحث ساخت لیست سفارشی در اندروید پرداخته میشود که در هر اپلیکیشن اندروید حتما باید با این امکان برخورد کرده اید.مثلا دیده اید که در یک سطر تعدادی زیاد اطلاعات به شکلی منظم کنار هم قرار گرفته انند مانند تصویر نمونه زیر : http://p30droid.com/Uploader/do.php?img=30[/img] قبل از اینکه مبحث لیست ویو سفارشی را شروع کنیم، اگر تا الان با ساخت لیست ویو آشنا ندارید، ابتدا مقاله اول ساخت لیست ویو را مطالعه نمایید تا آشنایی کلی در این رابطه را داشته باشید.برای اینکه بتوانیم یک لیست سفارشی را بسازیم ابتدا یک پروژه جدید اندروید را ایجاد میکنیم . عنوان پروژه: در این مثال قصد داریم کاربر اطلاعاتی مانند نام و نام خانوادگی و کد را وارد نماید سپس در هر سطر لیست این اطلاعات لیست شده برای کاربران نمایش داده شود. 1-ابتدا یک کلاس برای تعریف دیتایس و ایجاد جدول مربوطه با سه فیلد را ایجاد میکنیم.اگر به مبحث دیتابیس در اندروید آشنایی ندارید لطفا مقاله اول و دوم در رابطه با دیتابیس در اندروید را مطالعه نمایید. [shcode=java] import java.util.ArrayList; import java.util.List; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class DatabaseHelper extends SQLiteOpenHelper { public static final String DATABASE = "DATABASE_listview.db"; public static final String tbl_data = "tbl_data"; public static String id = "ID"; public static String name = "name"; public static String family = "family"; // method to create or connect to a database public DatabaseHelper(Context context) { super(context, DATABASE, null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE " + tbl_data + " (" + id + " TEXT ," + name + " TEXT," + family + " TEXT);"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + tbl_data); onCreate(db); } public void AddRowtable(String id, String name, String family) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues data = new ContentValues(); data.put("ID", id); data.put("name", name); data.put("family", family); db.insert(tbl_data, null, data); } } [/shcode] در این کلاس که کدهای آن را مشاهده میکنید یک تابع نیز به نام AddRowtable وجود دارد که برای وارد کردن اطلاعات در دیتابیس مورد استفاده میشود. 2- سپس در اکتیویتی اصلی برنامه یک لیست ویو قرار گرفته است برای نمایش اطلاعات موجود ، که از یک لیست سفارشی استفاده شده است. فایل activity_main.xml که در مسیر res/layout میباشد را باز نمایید. [shcode=xml] xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > android:id="@+id/listView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" > [/shcode] 3-اکتیویتی MainActivity را باز کنید: در این اکتیویتی آن چنان که در xml ان مشاهده نموید،فقط یک لیست ویو قرار دارد، پس ابتدا آن را تعریف میکنیم و در مرحله آخر اطلاعات موجود در دیتابیس در آن قرار میگیرد.در این کلاس یک تابع به اسم FillData تعریف شده که اطلاعات موجود در جدول را میخواند و در Hashmap قرار میدهد. شرح : از خط 18 تا 21 ویجت ها و کلاس ها تعریف شده اند. خط 26: لیست ویو تعریف شده است. خط 27 : یک شی جدید از کلاس دیتابیس با Context کلاس جاری را ایجاد کردیم. خط 36 : FillData برای این در onResume فراخوانی شده است که چون قرار است به اکتیویتی افزودن برویم و بعد دوباره back میزنیم تا اطلاعات بروز رسانی شود. خط 45 : یک Cusrsor تعریف شده تا شرط مورد نظر که انتخاب همه اطلاعات است را اجرا کند خط 52 : یک حلقه تعریف شده، به اندازه تعداد رکورد های پیدا شده از شرط اجرا میشود خط 54 : cursor یک رکورد به جلو میرود: چون cursor از صفر شروع میشود برای اینکه برنامه اخطار ندهد یه خانه به جلو میرویم خط 55 : یک Hashmap را تعریف میکنیم تا اطلاعات فیلدها را در آن بطور موقت ذخیره کنیم. خطوط56 تا 58 : این خطوط اطلاعات پیدا شده از شرط که در cursor قرار دارند را ذخیره میکنند. خطوط 60 تا 62 : این خطوط نیز اطلاعات موجود در متغیرهای بالا در خود ذخیره میکنند و هر فیلد دارای اسمی خاص میباشد. خط 64: اطلاعات در شی Datalist ذخیره میشود. خط 67 : اطلاعات پیدا شده و ست شده در Datalist را به کلاس listviewAdapter میفرستد تا بصورت لیست سفارشی نمایش داده شود. 68: سرانجام اطلاعات پیدا شده در لیست ویو نمایش داده میشود. کلاس listviewAdapter : این کلاس وظیفه نمایش اطلاعات را در قالب مشخص شده را داردو خط : 56 : در این خط تعیین میکنیم که لیست ما از کدام layout باید برای نمایش استفاده کند. در این کلاس آنچنان که ملاحضه میکنید در خطوط 60 تا 64 فیلدها فایل list-row که در مسیر res/layout میباشند را تعریف میکنیم.این لایوت همان لیستی میباشد که آن را طراحی کرده ایم تا لیست مورد نیاز ما را نمایش دهد. [shcode=xml]<?xml version="1.0" encoding="utf-8"?> android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@drawable/list_selector" android:orientation="horizontal" android:padding="5dip" > android:id="@+id/thumbnail" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_marginRight="5dip" android:background="@drawable/image_bg" android:padding="3dip" > android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@+id/thumbnail" android:layout_toRightOf="@+id/thumbnail" android:text="title" android:textColor="#040404" android:textSize="20dip" android:textStyle="bold" android:typeface="sans" /> android:id="@+id/date" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/title" android:layout_marginTop="1dip" android:layout_toRightOf="@+id/thumbnail" android:gravity="left" android:text="family" android:textColor="#FFA500" android:textSize="14dip" /> android:id="@+id/list_list" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignTop="@id/date" android:layout_marginRight="5dip" android:background="#E5E4E2" android:gravity="right" android:text="ID" android:textColor="#0000FF" android:textSize="12dip" android:textStyle="bold" /> [/shcode] 4-افزودن اطلاعات: برای افزودن اطلاعات ، روی دکمه منو کلیک کنید و گزینه add را انتخاب کنید ، تا وارد اکتیوتی userActivity شوید : افزودن اطلاعات : خطوط 27 تا 32 : ویجت ها را تعریف میکنند. خط 34 : وارد رویداد کلیک دکمه ثبت میشویم خط 39 این دستور،تابع موجود در کلاس دیتابیس DatabaseHelper که به اسم dbh را میباشد اجرا میشود و اطلاعات در فیلدهای موجود ذخیره میشود. دانلود مثال از آپلود سنتر انجمن پی سی دروید : http://p30droid.com/Uploader/do.php?id=36 پسورد : www.p30droid.com دانلود نسخه PDF مطلب. امیدوارم مفید واقع شود.
  2. سلام من با کمک کتابخانه https://github.com/roughike/BottomBar یک تب ساختم و با استفاده از viewpager یک اسلاید ویو ساختم چطوری این دوتا رو هماهنگ کنم مثلا با کشیدن صفحه علاوه بر تغییر ویو تب هم به تب بعدی تغییر کنه و برعکس یعنی اگر روی تب کلیک کرد ویو عوض بشه کد های main.xml [shcode=java] android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> android:id="@+id/contentContainer" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/bottomBar" /> android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent"/> android:id="@+id/bottomBar" android:layout_width="match_parent" android:layout_height="60dp" android:layout_alignParentBottom="true" app:bb_tabXmlResource="@xml/bottombar_tabs" /> [/shcode] کد های main.java [shcode=java] package com.sayeben.test; import android.app.Activity; import android.support.annotation.IdRes; import android.support.annotation.Nullable; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import com.roughike.bottombar.BottomBar; import com.roughike.bottombar.BottomBarTab; import com.roughike.bottombar.OnTabSelectListener; public class Main extends AppCompatActivity { protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager); viewPager.setAdapter(new CustomPagerAdapter(this)); BottomBar bottomBar = (BottomBar) findViewById(R.id.bottomBar); bottomBar.setOnTabSelectListener(new OnTabSelectListener() { @Override public void onTabSelected(@IdRes int tabId) { if (tabId == R.id.bbn_item1) { } if (tabId == R.id.bbn_item1) { // The tab with id R.id.tab_favorites was selected, // change your content accordingly. } if (tabId == R.id.bbn_item2) { // The tab with id R.id.tab_favorites was selected, // change your content accordingly. } if (tabId == R.id.bbn_item3) { // The tab with id R.id.tab_favorites was selected, // change your content accordingly. } if (tabId == R.id.bbn_item4) { // The tab with id R.id.tab_favorites was selected, // change your content accordingly. } } }); } } [/shcode] کد های modelobject.java [shcode=java] package com.sayeben.test; /** * Created by Mohammad on 14/11/2016. */ public enum ModelObject { RED(R.string.red, R.layout.view_red), BLUE(R.string.blue, R.layout.view_blue), GREEN(R.string.green, R.layout.view_green); private int mTitleResId; private int mLayoutResId; ModelObject(int titleResId, int layoutResId) { mTitleResId = titleResId; mLayoutResId = layoutResId; } public int getTitleResId() { return mTitleResId; } public int getLayoutResId() { return mLayoutResId; } } [/shcode] کد های custompageAdapter [shcode=java] package com.sayeben.test; /** * Created by Mohammad on 14/11/2016. */ import android.content.Context; import android.support.v4.view.PagerAdapter; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class CustomPagerAdapter extends PagerAdapter { private Context mContext; public CustomPagerAdapter(Context context) { mContext = context; } @Override public Object instantiateItem(ViewGroup collection, int position) { ModelObject modelObject = ModelObject.values()[position]; LayoutInflater inflater = LayoutInflater.from(mContext); ViewGroup layout = (ViewGroup) inflater.inflate(modelObject.getLayoutResId(), collection, false); collection.addView(layout); return layout; } @Override public void destroyItem(ViewGroup collection, int position, Object view) { collection.removeView((View) view); } @Override public int getCount() { return ModelObject.values().length; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public CharSequence getPageTitle(int position) { ModelObject customPagerEnum = ModelObject.values()[position]; return mContext.getString(customPagerEnum.getTitleResId()); } } [/shcode] و سه لایه با نام های view_blue و ... ممنون
  3. کاربران گرامی انجمن اندروید ایران با توجه به نیازی که احساس میشد و برای رضایت بیشتر کاربران گرام انجمن فایل نصبی JDK 1.8 نسخه 64 بیتی برای دانلود روی سرور انجمن قرار گرفته است و میتوانید آن را دانلود نمایید.امید است براحتی بتوانید برنامه های اندروید را راه اندازی نمایید کیت توسعه جاوا (Java SE Development Kit – به اختصار JDK) شامل محیط اجرای جاوا (Java Runtime Environment – به اختصار JRE) به همراه ابزارهایی برای توسعه، دیباگ و مانیتورینگ اپلیکیشن‌های جاوا می‌باشد.کیت توسعه جاوا برای توسعه اپلیکیشن‌ها و اپلت‌های جاوا و همچنین اجرای آن‌ها ضروری است. ابزارهای JDK به پنج دسته تقسیم می‌شوند: ابزارهای پایه‌ای (Basic Tools) ابزارهای فراخوانی متد راه دور (Remote Method Invocation – به اختصار RMI) ابزارهای بین‌المللی سازی (Internationalization) ابزارهای امنیتی ابزارهای Java IDL لینک دانلود http://p30droid.com/Download/java/jdk-8u51-windows-x64.exe دوستدار شما- فرزاد سرسیفی
  4. محیط جدید برنامه نویسی اندروید Android Studio اندروید استودیو یک محیط برنامه نویسی برای پلتفرم اندروید است. این برنامه در 16 می 2014 توسط مدیران گوگل در کنفرانس گوگل آی/او معرفی شد. از ماه جوئن 2014 نسخه پیش نمایش این برنامه (به صورت رایگان) برای امتحان در دسترس توسعه دهنده‌ها قرار گرفت. این محیط بر اساس نرم‌افزار محبوب جت برینز طراحی شده است، این استودیو بطور اختصاصی برای اندروید طراحی شده. هم اکنون این استودیو برای دانلود بر روی ویندوز، مک و لینوکس در دسترس می‌باشد. از جمله میتوان به موارد زیر اشاره کرد : 1-کدنویسی سریع و قدرتمند(Powerful code editing) : Android Studio شامل ادیتور ویرایش قدرمتندی میباشد،که بر پایه intellij میباشد،همچنین شامل ویژگی های زیر میباشد smart editing, advanced code refactoring, , deep static code analysis 2- UI قدرتمند و سریع : یکی از امکاناتی خیلی جذابی(خفنی!) که برای ساخت UI در اختیار برنامه نویسان قرار گرفته امکان مشاهده 6 نما در قسمتی از صفحه میباشد،این مسئله شاید به یکی از بزرگترین مشکلات برنامه نویسان اندروید تبدیل شده بود،با ورود این محیط برنامه نویسی قدرمتند این مشکل تا حدود زیادی حل خواهد شد. 3-محیط متن باز(Open source development) : از جمله ویژگی های دیگر این محیط برنامه نویسی متن باز بودن(رایگان) میباشد که از جمله مزیت این محیط قدرتمند میباشد. 4- دسترسی به سرویس های گوگل(Android Tools). برای دانلود برنامه Android Studio به آدرس زیر رفته و آن را دانلود نمایید. چندین ویژگی مهم در این نرم‌افزار برای توسعه دهندگان اندروید : چیدمان زنده: ویرایشگر WYSIWYG – کدنویسی زنده – رندر هم زمان برنامه کنسول توسعه دهنده: راهنمای بهینه سازی – کمک برای ترجمه – ردیابی ارجاع – طریقه استفاده پشتیبانی از ساخت مبتنی بر Gradle رفع و عیب یابی مخصوص اندروید ابزار لینت برای گرفتن عملکرد، قابلیت استفاده، نسخه سازگار با مشکلات دیگر قابلیت Proguard و امضای برنامه مبتنی بر الگوی wizard برای ایجاد طرح اندروید و اجزای مشترک ویرایشگر طرح بندی غنی که به شما اجازه کشیدن و رها کردن UI کامنت‌ها را می‌دهند. گزینه‌ای برای تنظیمات پیش نمایش طرح بندی در صفحه نمایش چندگانه
  5. راه های زیادی برای دانلود موجود هست که در اینجا مهم ترینشون رو می نویسم و استفاده از این روش ها بستگی به شما داره که کدوم به درد برنامه شما می خوره. 1. استفاده از AsyncTask و نمایش پیشرفت در progress // declare the dialog as a member field of your activity ProgressDialog mProgressDialog; // instantiate it within the onCreate method mProgressDialog = new ProgressDialog(YourActivity.this); mProgressDialog.setMessage("A message"); mProgressDialog.setIndeterminate(true); mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); mProgressDialog.setCancelable(true); // execute this when the downloader must be fired final DownloadTask downloadTask = new DownloadTask(YourActivity.this); downloadTask.execute("the url to the file you want to download"); mProgressDialog.setOnCancelListener(new DialogInterface.OnCancelListener() { @Override public void onCancel(DialogInterface dialog) { downloadTask.cancel(true); } }); private class DownloadTask extends AsyncTask { private Context context; private PowerManager.WakeLock mWakeLock; public DownloadTask(Context context) { this.context = context; } @Override protected String doInBackground(String... sUrl) { InputStream input = null; OutputStream output = null; HttpURLConnection connection = null; try { URL url = new URL(sUrl[0]); connection = (HttpURLConnection) url.openConnection(); connection.connect(); // expect HTTP 200 OK, so we don't mistakenly save error report // instead of the file if (connection.getResponseCode() != HttpURLConnection.HTTP_OK) { return "Server returned HTTP " + connection.getResponseCode() + " " + connection.getResponseMessage(); } // this will be useful to display download percentage // might be -1: server did not report the length int fileLength = connection.getContentLength(); // download the file input = connection.getInputStream(); output = new FileOutputStream("/sdcard/file_name.extension"); byte data[] = new byte[4096]; long total = 0; int count; while ((count = input.read(data)) != -1) { // allow canceling with back button if (isCancelled()) { input.close(); return null; } total += count; // publishing the progress.... if (fileLength > 0) // only if total length is known publishProgress((int) (total * 100 / fileLength)); output.write(data, 0, count); } } catch (Exception e) { return e.toString(); } finally { try { if (output != null) output.close(); if (input != null) input.close(); } catch (IOException ignored) { } if (connection != null) connection.disconnect(); } return null; } @Override protected void onPreExecute() { super.onPreExecute(); // take CPU lock to prevent CPU from going off if the user // presses the power button during download PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE); mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, getClass().getName()); mWakeLock.acquire(); mProgressDialog.show(); } @Override protected void onProgressUpdate(Integer... progress) { super.onProgressUpdate(progress); // if we get here, length is known, now set indeterminate to false mProgressDialog.setIndeterminate(false); mProgressDialog.setMax(100); mProgressDialog.setProgress(progress[0]); } @Override protected void onPostExecute(String result) { mWakeLock.release(); mProgressDialog.dismiss(); if (result != null) Toast.makeText(context,"Download error: "+result, Toast.LENGTH_LONG).show(); else Toast.makeText(context,"File downloaded", Toast.LENGTH_SHORT).show(); } و permission رو هم به برنامه اضافه کنید
  6. سلام دوستان میخواستم از محیط اکلیپس به محیط اندروید استودیو برم. فقط یک مشکلی دارم youwaveبه اندروید استودیو وصل نمیشه. کسی میتونه راهنماییم کنه هرچی گشتم مشکلم حل نشد. اینو هم امتحان کردم cd E:\android2\sdk\platform-tools adb connect 127.0.0.1:5558 pause جواب نداد!
  7. درود و خسته نباشید من یه پروژه اندروید دارم ولی نمیدونم مشکلش چیه چون خطا نمیده ولی موقع اجرا unfortunately android page has stoped باید چیکار کنم؟ کسی هست پروژه مو براش بفرستم تا یه نگاهی بهش بندازه؟؟ ممنون
  8. سلام دوستان کسی هست که ساخت drawerرو توی eclipseبرای من توضیح بده؟! میدونم که توی اندروید استودیو با navigation میشه این کار رو انجام داد اما eclipseرو نمیدونم. لطفا کمک کنید. مرسی
  9. در مقاله قبل در مورد پایگاه داده برنامه های اندروید صحبت کردیم و گفتیم پایگاه داده مورد استفاده برنامه های اندرویدی Sqlite می باشد، مولفه های مختلف Sqlite را معرفی کردیم در این مقاله یک نمونه مثال از این پایگاه داده را به همراه کدهای آن توضیح می دهیم. مثال استفاده شده ساخت یک پایگاه داده برای ذخیره مخاطبین تلفن همراه است با استفاده از این پایگاه داده می توان اطلاعات تماس تلفن همراه را درج، حذف، ویرایش کرد. برای تست این مثال می بایست آن را روی دستگاه واقعی دوربین دار تست کنید. با استفاده از اندروید استودیو یک برنامه کاربردی تحت عنوان com.example.sairamkrishna.myapplication بسازیم. برای ساخت این برنامه و پایگاه داده به ترتیب مراحل زیر را انجام می دهیم: 1.برای ساخت این پروژه مطمئن شوید که اندروید SDK از آخرین نسخه پشتیبانی کند تا با API های نسخه بالا همخوانی داشته باشند. 2.فایل SRC/MainActivity.java را می گذاریم تا توسط آن همه مولفه های XML و اخرین تماس ها را دریافت کند. Src/DBHelper.java.3 را می سازیم، که عملکرد دیتابیس را مدیریت می کند. 4.یک مولفه جدید با عنوان DisplayContact.java ایجاد می کنیم تا تماس های روی صفحه را نمایش دهد. 5.تغییر res/layout/activity_main و res/layout/activity_display_contact.xml که برای اضافه شدن مولفه های xml است. 6.تغییر فایل res/values/string.xml برای افزودن اجزای رشته ای ضروری است. 7.قرار دادن فایل res/menu/display_contact.xml برای ایجاد منوهای ضروری 8.ایجاد منو res/menu/mainmenu.xml برای قرار دادن امکان درج مخاطب 9.اجرای نرم افزار بر روی یک دستگاه اندرویدی و نصب برنامه روی آن در ادامه کدهای مربوط به مرحل بالا را قرار می دهیم. با نوشتن این کدها مرحله به مرحله دیتا بیس ما ایجاد می شود. محتوای MainActivity.java. را با استفاده از کدهای زیر ویرایش می کنیم. package com.example.sairamkrishna.myapplication; import android.content.Context; import android.content.Intent; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import java.util.ArrayList; import java.util.List; public class MainActivity extends ActionBarActivity { public final static String EXTRA_MESSAGE = "MESSAGE"; private ListView obj; DBHelper mydb; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mydb = new DBHelper(this); ArrayList array_list = mydb.getAllCotacts(); ArrayAdapter arrayAdapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1, array_list); obj = (ListView)findViewById(R.id.listView1); obj.setAdapter(arrayAdapter); obj.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) { // TODO Auto-generated method stub int id_To_Search = arg2 + 1; Bundle dataBundle = new Bundle(); dataBundle.putInt("id", id_To_Search); Intent intent = new Intent(getApplicationContext(),DisplayContact.class); intent.putExtras(dataBundle); startActivity(intent); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item){ super.onOptionsItemSelected(item); switch(item.getItemId()) { case R.id.item1:Bundle dataBundle = new Bundle(); dataBundle.putInt("id", 0); Intent intent = new Intent(getApplicationContext(),DisplayContact.class); intent.putExtras(dataBundle); startActivity(intent); return true; default: return super.onOptionsItemSelected(item); } } public boolean onKeyDown(int keycode, KeyEvent event) { if (keycode == KeyEvent.KEYCODE_BACK) { moveTaskToBack(true); } return super.onKeyDown(keycode, event); } } در زیر محتوای فایل DisplayContact.java برای تطبیق با برنامه اصلاح شده است: package com.example.addressbook; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.database.Cursor; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class DisplayContact extends Activity { int from_Where_I_Am_Coming = 0; private DBHelper mydb ; TextView name ; TextView phone; TextView email; TextView street; TextView place; int id_To_Update = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_contact); name = (TextView) findViewById(R.id.editTextName); phone = (TextView) findViewById(R.id.editTextPhone); email = (TextView) findViewById(R.id.editTextStreet); street = (TextView) findViewById(R.id.editTextEmail); place = (TextView) findViewById(R.id.editTextCity); mydb = new DBHelper(this); Bundle extras = getIntent().getExtras(); if(extras !=null) { int Value = extras.getInt("id"); if(Value>0){ //means this is the view part not the add contact part. Cursor rs = mydb.getData(Value); id_To_Update = Value; rs.moveToFirst(); String nam = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_NAME)); String phon = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_PHONE)); String emai = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_EMAIL)); String stree = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_STREET)); String plac = rs.getString(rs.getColumnIndex(DBHelper.CONTACTS_COLUMN_CITY)); if (!rs.isClosed()) { rs.close(); } Button b = (Button)findViewById(R.id.button1); b.setVisibility(View.INVISIBLE); name.setText((CharSequence)nam); name.setFocusable(false); name.setClickable(false); phone.setText((CharSequence)phon); phone.setFocusable(false); phone.setClickable(false); email.setText((CharSequence)emai); email.setFocusable(false); email.setClickable(false); street.setText((CharSequence)stree); street.setFocusable(false); street.setClickable(false); place.setText((CharSequence)plac); place.setFocusable(false); place.setClickable(false); } } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. Bundle extras = getIntent().getExtras(); if(extras !=null) { int Value = extras.getInt("id"); if(Value>0){ getMenuInflater().inflate(R.menu.display_contact, menu); } else{ getMenuInflater().inflate(R.menu.main, menu); } } return true; } public boolean onOptionsItemSelected(MenuItem item) { super.onOptionsItemSelected(item); switch(item.getItemId()) { case R.id.Edit_Contact: Button b = (Button)findViewById(R.id.button1); b.setVisibility(View.VISIBLE); name.setEnabled(true); name.setFocusableInTouchMode(true); name.setClickable(true); phone.setEnabled(true); phone.setFocusableInTouchMode(true); phone.setClickable(true); email.setEnabled(true); email.setFocusableInTouchMode(true); email.setClickable(true); street.setEnabled(true); street.setFocusableInTouchMode(true); street.setClickable(true); place.setEnabled(true); place.setFocusableInTouchMode(true); place.setClickable(true); return true; case R.id.Delete_Contact: AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage(R.string.deleteContact) .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { mydb.deleteContact(id_To_Update); Toast.makeText(getApplicationContext(), "Deleted Successfully", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(getApplicationContext(),MainActivity.class); startActivity(intent); } }) .setNegativeButton(R.string.no, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { // User cancelled the dialog } }); AlertDialog d = builder.create(); d.setTitle("Are you sure"); d.show(); return true; default: return super.onOptionsItemSelected(item); } } public void run(View view) { Bundle extras = getIntent().getExtras(); if(extras !=null) { int Value = extras.getInt("id"); if(Value>0){ if(mydb.updateContact(id_To_Update,name.getText().toString(), phone.getText().toString(), email.getText().toString(), street.getText().toString(), place.getText().toString())){ Toast.makeText(getApplicationContext(), "Updated", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(getApplicationContext(),MainActivity.class); startActivity(intent); } else{ Toast.makeText(getApplicationContext(), "not Updated", Toast.LENGTH_SHORT).show(); } } else{ if(mydb.insertContact(name.getText().toString(), phone.getText().toString(), email.getText().toString(), street.getText().toString(), place.getText().toString())){ Toast.makeText(getApplicationContext(), "done", Toast.LENGTH_SHORT).show(); } else{ Toast.makeText(getApplicationContext(), "not done", Toast.LENGTH_SHORT).show(); } Intent intent = new Intent(getApplicationContext(),MainActivity.class); startActivity(intent); } } } } در مقاله بعدی می توانید ادامه آموزش را دنبال کنید.
  10. با عرض سلام خدمت دوستان گرامی چند وقتیه تصمیم گرفتم برنامه نویسی اندروید یاد بگیرم هر چقدر تو سایتا گشتم چیزه درست و حسابی پیدا نکردم.:s:s سطح خودمم در ضمینه اندرویدو جاوا صفره صفره ولی سی پلاس پلاس کار کردم. کسی از دوستان میتونه یک منبع درست و حسابی بهم معرفی کنه. واقعا کلافه شدم اگه کسی کمکم کنه واقعا ازش ممنون میشم. در ضمن تو محیط اندروید استودیو کار میکنم.
  11. سلام دوستان میشه لطفا بگید که متد های onPause, onStart توی eclipse کجا هستند؟ یه مشکلی داشتم دوستم گفت که مشکلت توی متد های onPause, onStart هست . میشه بگید که اونا کجا هستن؟ لطفا بگییییییید کمکم کنید
  12. سلام من تازه میخوام برنامه نویسی اندروید رو شروع کنم. میخوام از کسایی که برنامه نویسی اندروید رو از کتاب یاد گرفتن بپرسم که با چه کتابی و چه برنامه ای(تو اینترنت که گشتم، بیشتر از نرم افزار Android Studio صحبت میکردن!) یاد گرفتن و انجام میدن؟؟
  13. سلام دوستان من میخاستم بدونم میشه من یک سری کارهای گرافیکی رو میخام داخل برنامه ی یونیتی بدم ولی چون خیلی از کدها و دستوراتش رو نمیدونم میخام بدونم میشه من کارهای گرافیکی رو داخل یونیتی انجام بدم بعد کدهای برنامه ام رو داخل اندروید استودیو بنویسم وبهش وصل کنم ؟؟ اصلا چنین فرض و چنین چیزی ممکنه ؟؟ ممنون میشه داخل اندروید استودیو 3 بعدی کار کرد ؟ یاعلی.
  14. با سلام برای اتصال گوشی به اکلیپس به صورت وایرلس باید چند دستور را در cmd تایپ کنیم که cmd در سیستمِ من، آخرین دستور (یعنی adb connect ipAddress) را اجرا نمی کند. لطفا اگر راه حل مشکلم را میدانید، کمک کنید. با تشکر
  15. سلام برای اینکه بخواهیم از یک متغییر که در متد onCreate تعریف و مقدار دهی شده در رویدادهای onPause,onStope, onDestroy استفاده کنیم به چه صورت باید عمل کنیم ؟ چون متغییری که داخل oncreate مقدار دهی شده امکان استفاده از آن در رویدادهای دیگر نیست! لطفا راهنمایی کنید. با تشکر
  16. سلام تو این انجمن آموزش جاوا در اندروید استودیو هست؟ اگه هست لطفا لینکش رو بذارید، خودم پیدا نکردم.
  17. سلام من میخوام تازه شروع کنم به یادگیری برنامه نویسی برای ساخت برنامه های آندرویدی ولی نمیدنم از چه چیزی باید اول شروع کرد لطفا راهنمایی کنید . ممنون
  18. سلام دوستان میشه اسم سی دی یا استاد خوب برای آموزشی مقدماتی اندروید رو بهم بگین میخوام تهیه کنم لطفا اگه سراغ دارین آموزش خوب به زبان فارسی بهم معرفی کنین
  19. دانلود SDK ویندوز اندروید Android SDK برنامه ای است که بوسیله این برنامه میتوانید همه دستورات مربوط به آندروید را در کامپیوتر اجرا کنید Android SDKبه صورت یک Pack از سود خود گوگل برای همه توسعه دهندگان اندروید عرضه شده است اما به علت اینکه ما ایرانیان به دلایل خاصی از طرف گوگل ما محدود شده ایم، به همین دلیل باید نسخه هایی را برای کاربران داخلی در دسترس قرار داده تا بتوانند بدون هیچ مشکلی از امکانات برنامه نویسی اندروید استفاده کنند. در این پکیج که برای دانلود قرار داده شده است مربوط به نسخه های سیستم عامل ویندوز 32 و 34 بیتی میباشد بر همین اساس انجمن برنامه نویسی اندروید-پی سی دروید کلیه امکانات لازمه را با لینک مستقیم از سرور انجمن قرار داده است. Android Developer Tools آپدیت جدید ADT Bundle دانلود ADT Bundle ، اندروید 4.4 نسخه 64 بیتی
  20. توی این مطلب یک گرافیک فوق العاده قشنگ میزارم امیدوارم مفید واقع شود طرح کامل رو میتوانید از پیوست این تاپیک دانلود کنید انجمن اندروید ایران flat-ui.zip
  21. [align=center]توسعه یار چیست؟ توسعه یار شبکه ارائه خدمات آنلاین به توسعه دهندگان Android میباشد . در کنار ارائه خدمات بخش هایی برای در آمد زایی و تبادل ، تعامل بین توسعه دهندگان و ارتقاع سطح کیفی برنامه های تولید شده ایجاد شده است . ضمن اینکه امکان حمایت از برنامه ها و نقدو بررسی برنامه ها نیز وجود دارد . هدف از ایجاد این شبکه همبستگی و ارتباط بهتر بین توسعه دهندگان و نظر خواهی در خصوص برنامه های تولید شده جدید و استفاده از آخرین متد ها در ساخت برنامه های جدید میباشد . تضمین توسعه یار چیست؟ توسعه دهندگان همیشه در این فکر هستند که سرویس مربوط که برای ارسال اعلان یا سایر خدمات که استفاده نموده اند ممکن است در آینده ای نچندان دور از دسترس خارج شود ، ما بار ها گفته ایم که توسعه یار یک سرویس دائمی بود و قصد توقف ندارد . اما برای تضمین و اطمینان هرچه بیشتر استفاده کنندگان از توسعه یار خدمت همه عارضیم که در صورت توقف این سروس یا عدم ارائه سرویس پایدار به تک تک توسعه دهندگان اسکریپت به همراه بانک کاربرانشان ارائه دهیم تا بتوانند در سرور یا هاست شخصی خود به استفاده از خدماتی که از سمت توسعه یار در برنامه خود لحاظ کرده بودند بپردازند . مزیت های این سیستم : بهینه سازی توسعه یار با استفاده از سرویس Google Cloud Messaging توانسته تبادل اطلاعات با کاربران را بصورت RealTime و زمان تبادل را به شدت کاهش دهد ، معمولا زمان ارسال شما و دریافت آن توسط کلاینت کمتر از 0.5 ثانیه خواهد بود پشتیبانی از اکثر APIهای اندروید توسعه یار با متکی بر عمل برنامه نویسی در زمینه اندروید برای پشتیبانی از تقریبا تمام دارندگان دستگاه های اندروید در ایران و جهان از api 8 یعنی اندروید 2.2 به بالا را پشتیبانی می کند امکانات حرفه ای توسعه یار با بررسی و نظر سنجی از چندین برنامه نویس بنا بر نیاز های خواسته شده امکانات متعددی ارائه می دهد که این امکانات در فواصل زمانی مختلف ، مجددا متناسب با نیاز روز ، افزایش داده خواهند شد رابط کاربری توسعه یار سعی کرده است تا رابط کاربری پنل و حتی امکاناتی که ارائه می دهد را آسان و دل نشین کند تا کاربران از فعالیت در پنل دچار سردرگمی نشوند چه امکاناتی توسعه یار به توسعه دهنده می دهد؟ اعلان لحظه ای مدیریت کاربران برقراری ارتباط با کاربران آمار دقیق اعلام نسخه جدید برنامه بارگذاری داده [/align] [align=center] خدمات توسعه یار از کدام محیط های برنامه نویسی زیر پشتیبانی می کند؟ Android Studio Eclipse Basic4Android برترین سرویس ارائه خدمات به توسعه دهندگان اندروید [/align]
  22. در این قسمت از آموزش برنامه نویسی اندروید میخواهیم برنامه موبایل خود را با یک واسط گرافیکی ساده ایجاد نماییم. واسط گرافیکی یا همان UI یکی از مهمترین اجزای یک نرم افزار موبایل و یا بازی موبایل می باشد. قسمت های گذشته را میتوانید از بلاگ آموزش برنامه نویسی موبایل (اندروید) قسمت دوم مطالعه کنید می خواهیم اپلیکیشنی بسازیم که با زدن یک دکمه متنی را در صفحه نمایش دهد. بخش اول که شامل ساخت UI میباشد را در این قسمت توضیح می دهیم. برای این منظور مراحل زیر را طی می کنیم: - ابتدا نرم افزار Android Studio را اجرا کرده در منوی مربوطه گزینه Start a new Android Studio Project را انتخاب می کنیم. در پنجره بعدی نوع اکتیویتی اصلی برنامه را Blank Activity انتخاب می کنیم. - پس از باز شدن پروژه در قسمت بالا سمت چپ محیط نرم افزار Android Studio صفحه روی گزینه app کلیک کرده در لیست باز شده مسیر زیر را انتخاب می کنیم. app -> res -> layout -> content_main.xml - در ابتدا روی متن Hello World برنامه پیشین کلیک کرده و delete را بزنید. - در فهرست قسمت Pallete لیست ابزارهای مختلف UI محیط برنامه نویسی اندروید موجود می باشد و می توان به راحتی با Drag & Drop در اکتیویتی اصلی برنامه از آنها برای شکل دهی به اپلیکیشن خود بهره بگیریم. - در ابتدا از منوی Pallete یک متن بزرگ (Large Text) را انتخاب میکنیم. با کلیک در صفحه نمایش متن مورد نظر در محل مورد نظر قرار می گیرد. - در مرحله بعدی گزینه Button را از لیست انتخاب کرده و روی صفحه نمایش قرار می دهیم. با دو بار کلیک روی Text و Button متن پیش فرض آن ها را می توان تغییر داد. در قسمت بعدی برنامه نویسی نرم افزار موبایل خود را توضیح خواهیم داد تا با زدن کلید فانکشنی را صدا زند مثلا متن موجود را تغییر دهد. این برنامه نویسی شامل کد نویسی به زبان Java می باشد.
  23. سلام دوستان میخواستم بدونم برا پخش ویدئو بصورت انلاین (منظورم پخش فیلم های سرور )و همچنین برا اپلود ویدئو کتابخانه ای هست که تو اندروید استودیو استفاده کنم؟
  24. سلام به همه دوستان : میخواستم بدونم چطور میشه از اکتیوتی های دیگه به آدر و position گریدویو دسترسی داشت مثلا تو همون اکتیوتی که گرید ویو هست من به صورت عمل کردم که اگر posstion ==1 بود برو به اکتیتوتیه دیگه - حالا تو اکتیوتیه های دیگه که من اطلاعاتی رو که در قسمت گرید ویو هست رو چطور میتونم برای اکتیوییتی های دیگه استفاده کنم - مثلا از همون postion 1 تو چند جا بتونم استفاده کنم - ممنون میشم اگه جواب بدبد - خیلی گیر این قضیه هستم دوستان لطفا به سوالم جواب بدید خیلی گیرم
  25. سلام یه نکته آموزشی خیلی ریز: موقعی که دارید با دیتابیس کار میکنید و بیش از یه بار کوئری میزنید به دیتابیس تون ممکنه با خطای (conn# 0) already closed مواجه بشید راه حل: یا توی کوئری های ماقبل آخر SQLdatabase رو close() نکنید ==> db.close() یا به تعداد کوئری هاتون از کلاس SQLdatabase یه آبجکت بسازید و باهاش کار کنید