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

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



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

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

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

نوع محتوا


انجمن ها

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

دسته ها

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

تقویم ها

  • Community Calendar

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

  1. سلام.من ازjson برای دریافت دیتا استفاده کردم. وقتی من از سیستم خودم به عنوان سرور استفاده میکنم همه چیز درسته. دیتا در صفحات php فراخوانی میشه و در داخل لیست ویو نمایش داده میشه. وقتی دیتابیس و کدهای php رو به اینترنت انتقال دادم هیچ چیز درسته فقط دیتا داخل app دریافت نمیششه و بجای اطلاعات داخل دیتابیس کدهای زیر رو دریافت میکنه. <html> <body> <script type="text/javascript" src="/aes.js" > </script> <script> function toNumbers(d) {var e=[]; d.replace(/(..)/g,function(d) {e.push(parseInt(d,16))});return e} function toHex() {for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)e+=(16>d[f]?"0":"")+d[f].toString(16);return e.toLowerCase()}var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("5f22fbc865116cf8983fda50eb10d21b"); document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; location.href="http://www.bepoushobefroushapp.webpi.ir/get_cat.php?i=1"; </script> <noscript>This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support </noscript> </body> </html>
  2. سلام من عکس رو از گالری میگیرم و آدرسِ اونو ذخیره میکنم تووی دیتابیس ، و نهایتاً با یک BitMap اونو میخونم و با ریسایکلرویو نمایش میدم. مشکل اینه که وقتی تعدادِ تصاویر بیشتر از 2 یا 3 تصویر میشه،برنامه به طرز عجیبی سنگین میشه! برنامه به هیچ وجه کرش نیمشه و کماکان درحال اجرا هست،فقط رم میخواد بترکه! این مشکلو چطور میتونم رفع کنم؟ با تشکر
  3. با سلام خدمت همکاران و دوستان توسعه دهنده عزیز لطفاً از اپلیکیشن گروه بنده حمایت کنید و هم چنین از انجمن آندروید ایران لینک جشنواره
  4. سلام من میخواهم داده را از طریق اس ام اس بفرستم با تابع senddatamessage ولی در سمت دریافت کننده حروف شبیه چینی دریافت میشود مشکل کجا است ؟ PendingIntent sentPI = PendingIntent.getBroadcast(getApplicationContext(), 0, new Intent("SMS_SENT"), 0); PendingIntent deliveredPI = PendingIntent.getBroadcast(getApplicationContext(), 0, new Intent("SMS_DELIVERED"), 0); SmsManager smsManager = SmsManager.getDefault(); = "sallam" String messageText smsManager.sendDataMessage("xxxxxxxxxxxxxxxxx", null, (short) 5000, messageText.getBytes() , sentPI, deliveredPI);
  5. خسته نباشید دوستان من میخوام یه مقداری رو بگیرم که داخل تیبل settings از دیتابیسم بصورت key ,value ذخیرش کردم key ش sound هست که از نوع ورکرکتر هست و میخوام اگه مقدارش 1 هست یه عکسی رو نشون بده اگرم مقدارش 0 هست یه عکس دیگه رو(همزمان اگه مقدار 1 بود صدا پخش بشه اگرم 0 بود پخش نشه) خلاصه مطلب اما به یه اروری خوردم حالا میخواستم ببینم ایراد از کجاست؟! این کلاس دیتابیس منیجرم public class DatabaseManager extends SQLiteOpenHelper { private Context context; private static String DB_PATH = "data/data/com.wordstutorial.hamidrezak.wordstutorials/databases/"; private static String DB_NAME = "words_db.db"; public static String DB_TABLE_WORDS ="words"; public static String BD_TABLE_PLAY="play"; public static String DB_TABLE_SETTINGS="settings"; private static int DB_VERSION = 2; private SQLiteDatabase dbase; public DatabaseManager(Context context) { super(context, DB_NAME, null, DB_VERSION); this.context = context; } public void createDatabase(){ boolean dbExist = checkDatabase(); if (dbExist) { Log.d("TAG", "Database already Exist"); } else { this.getReadableDatabase(); } try { copyDataBase(); } catch (IOException e) { throw new Error("Error copying database"); } } private boolean checkDatabase() { SQLiteDatabase checkDB = null; try { String myPath = DB_PATH + DB_NAME; checkDB=SQLiteDatabase.openDatabase(myPath , null, SQLiteDatabase.OPEN_READWRITE); } catch (SQLiteException e) { } if (checkDB != null) { checkDB.close(); } return checkDB != null ? true : false; } private void copyDataBase() throws IOException { InputStream myInput = context.getAssets().open(DB_NAME); String outFileName = DB_PATH + DB_NAME; OutputStream myOutput = new FileOutputStream(outFileName); byte[] buffer = new byte[1024]; int length; while ((length = myInput.read(buffer)) > 0) { myOutput.write(buffer, 0, length); } myOutput.flush(); myOutput.close(); myInput.close(); } public void openDataBase() throws SQLiteException { String myPath = DB_PATH + DB_NAME; dbase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE); } public Cursor queryData(String query) { return dbase.rawQuery(query, null); } @Override public synchronized void close() { if (dbase != null) dbase.close(); super.close(); } @Override public void onCreate(SQLiteDatabase db) { ///DO NOTHING } @Override public void onUpgrade(SQLiteDatabase db, int oldV, int newV) { ///DO NOTHING } public int getSoundState(){ openDataBase(); Cursor cursor=queryData( " SELECT * FROM " + DB_TABLE_SETTINGS + " WHERE key='sound' "); cursor.moveToFirst(); return Integer.parseInt(cursor.getString(2)); } public boolean setSoundState(int state){ openDataBase(); ContentValues contentValues=new ContentValues(); contentValues.put("sound",state); long result=dbase.update(DB_TABLE_SETTINGS,contentValues," key = ? " , new String[] {"sound"} ); if (result < 1){ return true; }else { return false; } } } همونطوری که میبینید متد های گتر و ستر رو برای وضعیت صدام مشخص کردم... اینم کلاسی که میخوام اطلاعاتو ویرایش کنم... public class WordActivity extends AppCompatActivity { private MediaPlayer mediaPlayer; DatabaseManager db; private SQLiteDatabase sqLiteDatabase; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_word); Intent intent = getIntent(); final int id = intent.getIntExtra("id", 0); String word = intent.getStringExtra("word"); String imageWord = intent.getStringExtra("image"); String soundWord = intent.getStringExtra("sound"); int resID = getResources().getIdentifier(imageWord, "mipmap", getPackageName()); int resImage = this.getResources().getIdentifier(soundWord, "raw", this.getPackageName()); ImageView imageBox = (ImageView) findViewById(R.id.image_word_activity); final ImageView imageSoundState = (ImageView) findViewById(R.id.sound_state); if (db.getSoundState()==1){ Picasso.with(this).load(R.drawable.sound_play).into(imageSoundState); }else { Picasso.with(this).load(R.drawable.sound_stop).into(imageSoundState); } imageSoundState.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (db.getSoundState()==1){ if (db.setSoundState(0)){ Picasso.with(WordActivity.this).load(R.drawable.sound_stop).into(imageSoundState); } }else { if (db.setSoundState(1)){ Picasso.with(WordActivity.this).load(R.drawable.sound_play).into(imageSoundState); } } } }); TextView textBox = (TextView) findViewById(R.id.text_word_activity); Picasso.with(this).load(resID).into(imageBox); mediaPlayer = MediaPlayer.create(this, resImage); mediaPlayer.start(); textBox.setText(word); } @Override protected void onPause() { super.onPause(); mediaPlayer.release(); } اینم ارور ها 01-09 17:59:26.831 27683-27683/? I/art: Not late-enabling -Xcheck:jni (already on) 01-09 17:59:26.831 27683-27683/? W/art: Unexpected CPU variant for X86 using defaults: x86 01-09 17:59:26.883 27683-27683/com.wordstutorial.hamidrezak.wordstutorials W/System: ClassLoader referenced unknown path: /data/app/com.wordstutorial.hamidrezak.wordstutorials-1/lib/x86 01-09 17:59:26.902 27683-27683/com.wordstutorial.hamidrezak.wordstutorials W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable 01-09 17:59:27.099 27683-27711/com.wordstutorial.hamidrezak.wordstutorials I/OpenGLRenderer: Initialized EGL, version 1.4 01-09 17:59:27.099 27683-27711/com.wordstutorial.hamidrezak.wordstutorials D/OpenGLRenderer: Swap behavior 1 01-09 17:59:27.160 27683-27711/com.wordstutorial.hamidrezak.wordstutorials E/EGL_emulation: tid 27711: eglSurfaceAttrib(1146): error 0x3009 (EGL_BAD_MATCH) 01-09 17:59:27.160 27683-27711/com.wordstutorial.hamidrezak.wordstutorials W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x9d9648a0, error=EGL_BAD_MATCH 01-09 17:59:28.300 27683-27711/com.wordstutorial.hamidrezak.wordstutorials E/EGL_emulation: tid 27711: eglSurfaceAttrib(1146): error 0x3009 (EGL_BAD_MATCH) 01-09 17:59:28.301 27683-27711/com.wordstutorial.hamidrezak.wordstutorials W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x9d964a60, error=EGL_BAD_MATCH 01-09 17:59:30.948 27683-27683/com.wordstutorial.hamidrezak.wordstutorials E/SQLiteLog: (14) cannot open file at line 32456 of [bda77dda96] 01-09 17:59:30.948 27683-27683/com.wordstutorial.hamidrezak.wordstutorials E/SQLiteLog: (14) os_unix.c:32456: (2) open(//data/data/com.wordstutorial.hamidrezak.wordstutorials/databases/words_db.db) - 01-09 17:59:30.949 27683-27683/com.wordstutorial.hamidrezak.wordstutorials E/SQLiteDatabase: Failed to open database 'data/data/com.wordstutorial.hamidrezak.wordstutorials/databases/words_db.db'. android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193) at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177) at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:808) at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:793) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:696) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:671) at com.wordstutorial.hamidrezak.wordstutorials.DatabaseManager.checkDatabase(DatabaseManager.java:63) at com.wordstutorial.hamidrezak.wordstutorials.DatabaseManager.createDatabase(DatabaseManager.java:42) at com.wordstutorial.hamidrezak.wordstutorials.View.Activity.WordsActivity.loadDatabase(WordsActivity.java:41) at com.wordstutorial.hamidrezak.wordstutorials.View.Activity.WordsActivity.onCreate(WordsActivity.java:28) at android.app.Activity.performCreate(Activity.java:6662) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 01-09 17:59:31.466 27683-27711/com.wordstutorial.hamidrezak.wordstutorials E/EGL_emulation: tid 27711: eglSurfaceAttrib(1146): error 0x3009 (EGL_BAD_MATCH) 01-09 17:59:31.466 27683-27711/com.wordstutorial.hamidrezak.wordstutorials W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x9d90cf20, error=EGL_BAD_MATCH 01-09 17:59:32.089 27683-27683/com.wordstutorial.hamidrezak.wordstutorials D/AndroidRuntime: Shutting down VM 01-09 17:59:32.089 27683-27683/com.wordstutorial.hamidrezak.wordstutorials E/AndroidRuntime: FATAL EXCEPTION: main Process: com.wordstutorial.hamidrezak.wordstutorials, PID: 27683 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wordstutorial.hamidrezak.wordstutorials/com.wordstutorial.hamidrezak.wordstutorials.View.Activity.WordActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.wordstutorial.hamidrezak.wordstutorials.DatabaseManager.getSoundState()' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.wordstutorial.hamidrezak.wordstutorials.DatabaseManager.getSoundState()' on a null object reference at com.wordstutorial.hamidrezak.wordstutorials.View.Activity.WordActivity.onCreate(WordActivity.java:43) at android.app.Activity.performCreate(Activity.java:6662) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) ممنون میشم کمک کنید ببینم مشکل از کجاست؟!
  6. سلام دوستان کسی با junit و testNG کار کرده ؟؟ میخوام چند تا سورس کد مختلف رو روی هردو ران کنم و زمان های تست رو اندازه بگیرم میشه لطفا کمکم کنید ؟ ممنون
  7. با سلام من یه سورس پروژه اندروید دانلود کردم و الان میخام اجراش کنم و کدش رو بخونم.چون دیدم با android studio نوشته شده ، اون رو نصبش کردم و پروژه رو داخلش ایمپورت کردم.وقتی پروژه ایمپورت شد، در پایین یک خطا با این موضوع ظاهر شد: Error:Cause: failed to find target with hash string 'android-23' in: C:\Users\Tazhan\AppData\Local\Android\Sdk <a href="install.android.platform">Install missing platform(s) and sync project</a> الان دقیقا چه کاری باید انجام بدم؟آیا باید sdk دیگه ای نصب کنم؟ نصبش چجوریه؟داخل sdk manager من هیچ چیزی نیست که نصب نشده باشد که بخام نصبش کنم.هر چی نشون میده نصب شده.این هم بگم که من android studioای رو نصب کردم که به طور خودکار با sdkهاش نصب می شد. ما تو زمینه اندروید مبتدی هستم و تا حالا با android studio کار نکردم.ممنون میشم راهنماییم کنید.تصویر خطاروهم در زیر آپلود کردم.
  8. public boolean Update(Model_PersonalZekr model_personalZekr) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(KEY_COUNTER, model_personalZekr.getCounter()); db.execSQL("update " + Tbl_Personal_Zekr + " set" + KEY_COUNTER + "='" + model_personalZekr.getCounter() + "'" + " where" + KEY_ID + "='" + model_personalZekr.getId() + "'"); return ; } دوستان من چند تا چیز رو نمی دونم اینکه چرا باید public boolean انتخاب کنم و دوم اینکه حالا باید return چی بدم بهش ؟ حالا که من از execSQL استفاده کردم اصلا درست هست ؟
  9. سلام به اساتید یه سوال داشتم من میخوام برای برنامه ی اندرویدی که نوشتم در شروع یک اکتیویتی لاگین بسازم و یوزرهایی که از قبل در پایگاه داده گذاشتم بتونن وارد بشن و من بتونم بفهمم کیا وارد شدن. اگر کسی میتونه کمک کنه یا سورسی داره که این کار را میکنه لطفا کمک کنه. ممنون
  10. با سلام دوستان کسی میدونه چطوری میشه فونت number picker تغییر داد ؟
  11. سلام دوستان موقعی ک درGenymotion میخوام دستگاهی رو اجرا کنم این ارور رو میده.(در ضمن ویندوز 8.1 x64)
  12. سلام میخوام از طریق xampp به وب سرویسم وصل بشم اما هرچی میزنم ادرس رو وصل نمی شه http://192.168.56.1/xampp/app/api.php?factor ادرس ای پی رو باید از کجا پیدا کنم ؟
  13. سلام.مشکل این کد چیه.لطفا کمک کنید. setListAdapter(new MyAdapter(akhbar.this, R.layout.list_layout, R.id.textView1, json_string_1_all)); lv = getListView(); akhbar.java
  14. سلام. لطفااگه کسی درمورد نوشتن رسیور (BroadcastReceiver) برای فشار دادن دکمه پاور میدونه قرار بده. ممنون
  15. نگارش 1.0.0

    286 دانلود

    سورس اندروید استودیو فروشگاه اینترنتی + وب سایت + وبسرویس زبان ها جاوا + php

    رایگان

  16. لیست ویو Listview : [align=justify]ListView در حالت استاندارد به صورت یک لیست متنی میباشد. که اطلاعات را بصورت آرایه ای میسازد.لیست ویو بطور وفور در بیشتر برنامه های اندرویدی یافت میشود مثلا لیست شماره تلفن ها، تماسها و غیره، قرار میگیرد.[/align] [align=justify]برای شروع به مثال ساده زیر توجه کنید:[/align] [align=justify]در این مثال قصد داریم یک لیست ساده بسازیم که لیست ماه های میلادی را نمایش دهد[/align] مرحله 1 ) ابتدا باید در فایل main.xml خود ویجت لیست ویو را قرار دهیم. <?xml version="1.0" encoding="utf-8"?> android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> android:layout_height="fill_parent" android:id="@+id/mainListView"> مرحله 2 )برای نمایش لیست باید به اکتیویتی اصلی که قرار است لیست مربوطه فراخونی شود مراجعه کنیم و لیست را بسازیم. public class ListActivity extends Activity { String[] monthsArray = { "JAN", "FEB", "MAR", "APR", "MAY", "JUNE", "JULY", "AUG", "SEPT", "OCT", "NOV", "DEC" }; private ListView monthsListView; private ArrayAdapter arrayAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); monthsListView = (ListView) findViewById(R.id.mainListView); arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, monthsArray); monthsListView.setAdapter(arrayAdapter); }} شرح کدها : 1-ابتدا باید ارایه خود را تعریف کنیم String[] monthsArray = { "JAN", "FEB", "MAR", "APR", "MAY", "JUNE", "JULY", "AUG", "SEPT", "OCT", "NOV", "DEC" }; 2-لیست ویو را تعریف کنیم : private ListView monthsListView; 3-یک متغیر سراسری از نوع Arraylist ایجاد میکنیم: private ArrayAdapter arrayAdapter; 4- در مرحله آخر لیست را میسازیم : arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, monthsArray); monthsListView.setAdapter(arrayAdapter); [align=center][/align] در آموزش های بعدی نحوه ساختن Custom List قرار داده میشود
  17. ساخت لیست سفارشی در اندروید در این تاپیک به مبحث ساخت لیست سفارشی در اندروید پرداخته میشود که در هر اپلیکیشن اندروید حتما باید با این امکان برخورد کرده اید.مثلا دیده اید که در یک سطر تعدادی زیاد اطلاعات به شکلی منظم کنار هم قرار گرفته انند مانند تصویر نمونه زیر : 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 مطلب. امیدوارم مفید واقع شود.
  18. سلام دوستان والا بنده یه برنامه کاربردی در زمینه خودم دارم که این برنامه چیزی که خیلی رو اعصابه باید برای وصل شدن به سرورش چند بار گوشی رو شیک کرد شاید حدوده 8 الی 10 بار شیک محکم کرد که تا 100 درصد پر بشه و به سرور متصل بشه . من زیاد برنامه نویسی آندروید سر در نمیارم من کلی تحقیق کردم و با برنامه apk multi took دیکامپل کردم برنامه مورد نظر رو یه قسمتی تو پوشه res پیدا کردم به اسمه activity_shake_and_save ولی گویا بیشتر در زمینه محیط برنامه توضیح داده بود و چیزی به اسمه سنسور پیدا نکردم به نظرتون چی کار میشه کرد ممنون فایل به اسمه shake هم آپلود کردم براتون http://s5.picofile.com/file/8173821968/activity_shake_and_save.rar.html
  19. سلام یک سوال داشتم در کدام سایت میتوان اندروید استدیو رو به صورت کامل یاد گرفت اگه به صورت فیلم اموزشی باشه خیلی خوبه
  20. در این آموزش می خواهیم دانلود فایل در دیالوگ باکس با قابلیت لغو دانلود را برای شما آموزش دهیم ابتدا کد برنامه: import java.io.BufferedInputStream; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.net.URLConnection; import android.app.Activity; import android.app.ProgressDialog; import android.content.DialogInterface; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; public class DownloadActivity extends Activity { /** Called when the activity is first created. */ boolean isRun = false; ; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); new DownloadFileFromURL().execute("http://hw14.asset.aparat.com/aparat-video/1d7288ace5ce9cc812f6cf5b99d2b8b62642090-360p__87605.mp4"); isRun = true; } private final class onCancelClick implements DialogInterface.OnClickListener { @Override public void onClick(DialogInterface arg0, int arg1) { isRun = false; } } class DownloadFileFromURL extends AsyncTask { private ProgressDialog pDialog; /** * Before starting background thread * Show Progress Bar Dialog * */ @SuppressWarnings("deprecation") @Override protected void onPreExecute() { super.onPreExecute(); pDialog = new ProgressDialog(DownloadActivity.this); pDialog.setMessage("موسیقی مورد نظر در حال دانلود است..."); pDialog.setIndeterminate(false); pDialog.setMax(100); pDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); pDialog.setCancelable(false); pDialog.setButton("لغو", new onCancelClick()); pDialog.show(); } /** * Downloading file in background thread * */ @Override protected String doInBackground(String... f_url) { int count; try { URL url = new URL(f_url[0]); URLConnection conection = url.openConnection(); conection.connect(); // getting file length int lenghtOfFile = conection.getContentLength(); // input stream to read file - with 8k buffer InputStream input = new BufferedInputStream(url.openStream(), 8192); // Output stream to write file File f = new File("sdcard/ff.mp3"); OutputStream output = new FileOutputStream(f); byte data[] = new byte[1024]; long total = 0; while ((count = input.read(data)) != -1) { total += count; // publishing the progress.... // After this onProgressUpdate will be called publishProgress("" + (int) ((total * 100) / lenghtOfFile)); // writing data to file output.write(data, 0, count); if ( !isRun) { f.delete(); break; } } // flushing output output.flush(); // closing streams output.close(); input.close(); } catch (Exception e) { Log.e("Error: ", e.getMessage()); } return null; } @Override protected void onProgressUpdate(String... progress) { pDialog.setProgress(Integer.parseInt(progress[0])); } @SuppressWarnings("deprecation") @Override protected void onPostExecute(String file_url) { pDialog.dismiss(); } } } همانطور که مشهود است از یک کلاس آسینک تسک استفاده شده برای دانلود فایل و پس از تنظیمات اولیه دیالوگ در متد onPreExecute در متد doInBackground کارهای اصلی انجام می شود. که فایل دانلود و در اس دی کارد نوشته یا ذخیره می شود اما قسمت مهم این کار متغیر isRun است که پس از هربار نوشتن چک می شود که آیا کاربر دانلود را متوقف کرده یا نه که اگر نکرده به دانلود ادامه دهد و اگر دکمه توقف توسط کاربرد زده شده دانلود را متوقف می کند. اما باید توجه داشته باشبید که پرمیشن های زیر را در فایل منیفست اضافه کنید. امیدوارم این آموزش راهنمای خوبی برای شما دوستان باشد.
  21. دوستان سلام و درود آیا کسی وب سایتی رو میشناسه که ازش بتوان سورسهای اندروید رو گرفت ،مثلا سورس آماده اسلاید منو صفحات امده شده اکتیویتی با لیست ویو ، انواع افکتها در ویجتها و...... .....( می دونم که اگه همین عبارت رو سرچ کنم زیاد در موردش پیدا میکنم ) ، ولی منظور من وب سایتی هستش که دامنه انتخاب انواع سورس کدهای اندروید در اون زیاد باشه راستیتش من سایت github رو نمی دونم چه جوری ازش سورس پیدا کنم اگه کسی اطلاعی داره ممنون میشم کمک کنه .(من نمیدنم اینایی که بازیهای پلی استیشن و سگا رو تو بازار می زارن از کجا پیدا میکنن سورسشو!!)]
  22. ابتدا کتابخانه vitamio را به عنوان به عنوان یک کتابخانه به محیط توسعه خود اضافه کنید.این کتابخانه در این لینک قابل دریافت است: https://github.com/yixia/VitamioBundle باید توجه کنید که پس از دانلود شما قسمتی که فولدری به نام vitamio دارد را برای این آموزش نیاز دارید. سپس یک پروژه به نام VitamioVideo ایجاد کرده و در کد های زیر را به ترتیب در فایل ایکس ام ال و سپس در اکتیویتی می نویسیم. main.xml : <?xml version="1.0" encoding="utf-8"?> android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal"> android:id="@+id/surface_view" android:layout_width="wrap_content" android:layout_height="wrap_content"/> که در آن ک ویدیو ویو از کلاس io.vov.vitamio.widget.VideoView در آن قرار دارد. سپس در اکتیویتی VitamioVideoActivity: package com.VitamioVideo; import io.vov.vitamio.LibsChecker; import io.vov.vitamio.MediaPlayer; import io.vov.vitamio.widget.MediaController; import io.vov.vitamio.widget.VideoView; import android.app.Activity; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.widget.Toast; public class VitamioVideoActivity extends Activity { private String pathToFileOrUrl = "http://hw14.asset.aparat.com/aparat-video/1d7288ace5ce9cc812f6cf5b99d2b8b62642090-360p__87605.mp4"; private VideoView mVideoView; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); if ( !LibsChecker.checkVitamioLibs(this)) return; setContentView(R.layout.main); mVideoView = (VideoView) findViewById(R.id.surface_view); if (pathToFileOrUrl == "") { Toast.makeText(this, "Please set the video path for your media file", Toast.LENGTH_LONG).show(); return; } else { /* * Alternatively,for streaming media you can use * mVideoView.setVideoURI(Uri.parse(URLstring)); */ mVideoView.setVideoPath(pathToFileOrUrl); mVideoView.setMediaController(new MediaController(this)); mVideoView.requestFocus(); mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mediaPlayer) { // optional need Vitamio 4.0 mediaPlayer.setPlaybackSpeed(1.0f); } }); } } public void startPlay(View view) { if ( !TextUtils.isEmpty(pathToFileOrUrl)) { mVideoView.setVideoPath(pathToFileOrUrl); } } public void openVideo(View View) { mVideoView.setVideoPath(pathToFileOrUrl); } } که در آن یک شی از ویدیو ویو ویتامیو ساخته و به ایکس ام ال پیوند داده شده است و سپس کار های لازم و اولیه برای دکمه های پلیر انجام شده و سپس url فایلی که باید آنلاین پخش شود را به ویدیو ویو نسبت داده.سپس ویدیو ویو با کمک لیستنر به محض آماده شدن اولیه فایل را پخش می کند. در فایل منیفست برنامه نیز باید تغییراتی انجام داد که در زیر شاهد آن خواهیم بود : <?xml version="1.0" encoding="utf-8"?> package="com.VitamioVideo" android:versionCode="1" android:versionName="1.0" > android:icon="@drawable/ic_launcher" android:label="@string/app_name" > android:name=".VitamioVideoActivity" android:label="@string/app_name" > android:name="io.vov.vitamio.activity.InitActivity" android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation" android:launchMode="singleTop" android:theme="@android:style/Theme.NoTitleBar" android:windowSoftInputMode="stateAlwaysHidden" /> علاوه بر دسترسی های لازم که قرار داده شده است اکتیویتی آماده سازی اولیه یا مقدار دهی اولیه کامپوننت ویتامیو نیز خود نمایی می کند. این نکته را در نظر داشته باشید که بجای یک ویدیو آنلاین شما می توانید یک ویدیو آفلاین را هم پخش کنید. سپس می توانید را اجرا کردن برنامه نتیجه حاصله را ببینید و از این پلیر قدرتمند لذت ببرید. امیدواریم این آموزش موثر واقع شود و تاثیری حتی کوچک در پیشرفت شما دوستان ایفا کند.
  23. سلام من یه رشته جی سون دارم که حجیمه و وقتی میخوام بخونمش نمیشه! اومدم چن تا آبجکتشو جدا کردم گذاشتم روی یه هاست دیگه برنامه ام کار میکرد ولی با اون رشته اصلی که خیلی طولانیه جواب نمیده اینم قطعه کدی هست که باهابچش از سرور json رو میخونم @Override protected String doInBackground(String... string) { try { String data=URLEncoder.encode("username","UTF8")+"="+URLEncoder.encode(User,"UTF8"); URL mylink=new URL(Link); URLConnection connect=mylink.openConnection(); connect.setDoOutput(true); OutputStreamWriter wr=new OutputStreamWriter(connect.getOutputStream()); wr.write(data); wr.flush(); BufferedReader reader=new BufferedReader(new InputStreamReader(connect.getInputStream())); String line=null; while((line=reader.readLine()) != null) { sb.append(line); } MainActivity.res = sb.toString(); } catch (Exception e) { } return ""; } ممنون میشم کمکم کنید، برا یه پروژه مهمه
  24. چگونه یک button رو به دکمه call روی گوشی میشه وصل کرد اگه میشه کد این حرکت رو راهنمایی کنین کسی بلده ؟؟؟؟؟؟؟ یعنی اگه این button رو تو نرم افزار بزنی شماره گرفته شده calling بشه ..... مرسییییی از دوستان مجرب اگه میشه کمک کنین (نرم افزار eclips )