اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

 برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


Gray Mind

مدیر بخش
  • تعداد ارسال ها

    561
  • تاریخ عضویت

  • آخرین بازدید

  • روز های برد

    17

آخرین بار برد Gray Mind در آبان 18

Gray Mind یکی از رکورد داران بیشترین تعداد پسند مطالب است!

1 دنبال کننده

درباره Gray Mind

  • درجه
    کاربر حرفه ای

آخرین بازدید کنندگان نمایه

5,232 بازدید کننده نمایه
  1. درصد سهم کافه بازار از فروش برنامه پولی چقدره؟

    هیچ هزینه ای از شما نمیگیرن هرتعداد برنامه و بازی میتونید بذارید آپدیت کنید و... فقط سالانه 40 هزار تومان حق عضویت و فعالیت باید بپردازید
  2. مشکل در ارسال اطلاعات RecyclerViewAdapter

    یه راهش اینه که شما یه کلاس interface بسازید و توی اکتیویتی یا فرگمنتی که میخواید مقادیر اداپتر رو بگیرید Implement کنید و در کانستراکتور(متد سازنده ی اداپتر) یک نمونه از این اینترفیس رو بگیرید و در آخر ازش استفاده کنید به ترتیب اول یه کلاس اینترفیس میسازیم : public interface GetValue{ void ItemValue(String value); // mitone har data type bashe : int value , String value and ... } دوم اکتیویتی رو ایمپلمنت میکنیم و ازش استفاده میکنیم : public class MainActivity extends AppCompatActivity implements GetValue{ public void onCreate(){ adapter = new RecyclerAdapter(list , this); // this baraye vorodie interface ke sakhtim hast chon activity ro implement kardim pas this ro midim behesh recyclerview.setAdapter(adapter); } @Override public void ItemValue(String value){ // inja mitoni az meghdar value estefade koni } } سوم ازش توی اداپتر بهش مقدار میدیم : public class recyclerAdapter(){ private GetValue mListener; public recyclerAdapter(List list , GetValue listener){ this.mListener = listener; } public void onBindViewHolder(ViewHolder holder){ holder.item.setOnClickListener(new View.onClickListener{ public void onClick(){ mListener.ItemValue(holder.item.getText().toString()); // inja behesh meghdar ro midim } }) } } موفق باشی
  3. مشکل import کردن خودکار در اندروید استودیو

    اصولا وقتی دارید مینویسید اگه از داخل باکس پیشنهادی enter بزنید خودش خودکار ایمپورت میکنه و نیازی نیست شما اینکارو بکنید اما وقتی دستی مینویسید میتونید با کلیک روش و زدن alt+enter کتابخونه رو ایمپورت کنید موفق باشید
  4. تفاوت و توضیحات For و Do While

    کاربردش برای دسترسی به همه ی مقادیر آرایه ها ، لیست ها و... هستش برای مثال شما ده تا عدد دارید و میخواید از همه شون استفاده کنید برای کار خاصی خوب مسلما شما نمیای و ده تا عدد رو برای هرکدوم یه متغیر تعریف کنید و میاید و به صورت آرایه تعریفش میکنید ما این اعداد رو داریم : 1,8,4,20,48,12,35,48,17,79 خوب فرض کنید توی یه آرایه این هارو مقدار دهی شده حالا خودمون تعریفش کردیم یا کدی که داریم مینویسیم همچین آرایه ای رو به ما داده (آرایه ی عددی و رشته ای فرقی نداره )و حالا میخوایم با هرکدوم از این عدد ها یه کاری رو انجام بدیم . هر خونه از آرایه یک اندیس داره که اندیس هر آرایه از عدد (0) شروع میشه تا (منهای 1 اندازه ی آرایه) که اینجا 10 هستش پس آخرین اندیس ما میشه 9 میایم و یه حلقه For یا doWhile تعریف میکنیم و با توجه به اندیسشون یه کاری رو انجام میدیم مثلا باهم جمعشون میکنیم خوب این یه مثال ساده بود که جاهای زیادی کاربرد داره موقع نوشتن برنامه ما با لیست های زیادی از جمله لیست مطالب و کار با دیتابیس و ... لازممون میشه مثال دیگه ای که میتونم بزنم ما یه پوشه داریم و توش چندتا آهنگ داریم میایم و مسیر همه ی آهنگ هارو میریزیم توی آرایه و توی حلقه ی for یا doWhile یکی یکی پاکشون میکنیم یا منتقلشون میکنیم یه پوشه ی دیگه امیدوارم تونسته باشم که مفهومشو منتقل کنم توصیه میکنم اول بخونید راجب این ها و بعد برید سمت کدنویسی وگرنه ممکنه گیجتون کنه موفق باشید
  5. کار باspiner

    این سورس رو که تو لینک زیر گذاشتم رو ببینید متوجه میشید چطوری باید یه اسپینر بسازید و...
  6. نه نیازی به پارس کردن دستی نیست همونطور که قبلا هم گفتم این کتابخونه هرچقدر هم تو در تو باشه کاملا خودکار پارس میکنه خوب شما کافیه یه مدل دیگه درست کنید دقیقا مثل CategoryModel و به نیاز چندتا متغیر که داخل جیسون آبجکت های لیست دوم هست تعریف میکنی SerializedName هارو ست میکنید و در آخر هم توی مدل اصلی میاید و یه متغیر از نوع اون کلاس مدل دوم تعریف میکنید و SerializedName رو برابر با اسم اون JsonArray میدین مثال زیر رو ببینید : ما این جیسون رو داریم : { "site":"answercenter" "users:[ { "id":1, "username":"Gray Mind", "name":"Benyamin" }, { "id":2, "username":" } ], "admin":{ "username":"izadi", "name":"Mehdi Izadi" } } خوب حالا ما سه تا کلاس مدل لازم داریم‌: SiteModel public class SiteModel { @SerializedName("site") @Expose private String site; @SerializedName("users") @Expose private ArrayList<UsersModel> users; @SerializedName("admin") @Expose private AdminModel admin; //getter setters } UsersModel : public class UsersModel{ @SerializedName("id") @Expose private int id; @SerializedName("username") @Expose private String username; @SerializedName("name") @Expose private String name; //getter setters } و در آخر AdminModel : public class AdminModel{ @SerializedName("username") @Expose private String username; @SerializedName("name") @Expose private String name; //getter setters } و درخواستمون هم همون مثل قبل هستش : @GET("EndPoint") Call<SiteModel> getSite(); به همین راحتی همه شون رو به صورت آبجکت برمیگردونه که البته یادتون نره getter و setter هارو هم بذارید همون getId و ... موفق باشید
  7. ارسال مقادیر فقط در حالت StringRequest امکان پذیر هستش و JsonArrayRequest همچین قابلیتی نداره شما میتونی یه کلاس بسازی و اکستندش کنی از Request یا StringRequest و مقادیر رو به همراهش بفرستی و دستی توی کلاسی که ساختین جیسون هارو پارس کنید تاحالا امتحان نکردم اما مطمئنن میشه اما پیشنهاد میکنم از کتابخانه ی رتروفیت استفاده کنید تا بتونید جیسون هارو به راحتی به صورت آبجکت تحویل بگیرید و به راحتی هم میتونید انواع مقادیر رو ارسال کنید موفق باشید
  8. ساختد ویو با کد نویسی - مقادیر درصدی

    پیشنهاد میدم استفاده از لیوت های استاندارد مثل LinearLayout رو یاد بگیرید که با وزن دادن میشه انواع لیوت های عمودی و افقی رو ساخت اما اگه بازم اصرار به درصد بندی دارید میتونید از این کتابخانه استفاده کنید : implementation 'com.android.support:percent:27.1.1' مثال : <android.support.percent.PercentRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <Button android:id="@+id/button" android:text="Button" android:layout_height="wrap_content" android:layout_alignParentTop="true" app:layout_widthPercent="30%"/> <Button android:id="@+id/button2" android:text="Button 2" android:layout_height="wrap_content" android:layout_toRightOf="@id/button" app:layout_widthPercent="60%"/> <Button android:id="@+id/button3" android:text="Button 3" android:layout_height="wrap_content" android:layout_below="@+id/button" android:layout_alignParentStart="true" android:layout_alignParentLeft="true" app:layout_widthPercent="90%"/> </android.support.percent.PercentRelativeLayout>
  9. با سلام دوستان با دوره آموزشی رتروفیت پیشرفته در خدمت شما هستم تو این دوره سعی شده به صورت پیشرفته تر با رتروفیت کار کنیم و از قابلیت هاش به صورت بهینه تر استفاده کنیم یکی از مهمترین قابلیت های این کتابخونه اینه که شما یه کلاس مدل میسازید و رتروفیت به صورت خودکار جیسون هایی که از سرور گرفته رو Parse میکنه و به صورت آبجکت بهتون تحویل میده و این خودش میتونه کلی از کدنویسی هاتون رو کم کنه شما تو این دوره یاد میگیرید که چطور با یه API که آماده هستش کار کنید . مقادیر بهش ارسال کنید و جواب رو بگیرید، فایل آپلود کنید، یاد میگیریم چطور رتروفیت رو با RxJava مخلوط کنیم تا سرعت بیشتر بشه و به صورت مولتی ترد به سادگی کار کنیم . نکته ی مهم : تو این آموزش هیچگونه کدنویسی سمت سروری صورت نمیگیره و فرض رو بر این میذاریم که قبلا نوشته شده . عنوان هر قسمت به ترتیب : 1- آموزش متد گت 2- آموزش متد پست 3- آموزش آپلود عکس 4- آموزش ترکیب رتروفیت و RxJava --------------------------------------------------- آپشن هایی که میتوانید برای ارسال مقادیر به سرور استفاده کنید : @Path : برای جایگذاری مقدار در آدرس ای پی آی API : http://api.com/user/{username} Retrofit : @Path("username") String UserName @Query : برای ارسال مقادیر همراه متد گت API Sample Required : http://api.com/user/feed?123 Retrofit : @Query("feed") int FeedID @Field : برای ارسال مقادیر همراه متد پست @Map : برای ارسال مقادیر مانند هش مپ در اندروید @Part : برای ارسال فایل و مقادیر همراه فایل برای آپلود در سرور @Header : برای ارسال هدر به سرور (اگر نیاز بود) API Required Header : DeviceID , UserAgent there is a two type of declaration : Type 1 : StaticDeclaration Single Header : @Headers("deviceid: 132564") @GET("endpoint") Call<> .... Multi Header : @Headers({ "deviceid: 132564", "useragent: android-retrofitsample }) @GET("endpoint") Call<> .... Type 2 : DynamicDeclaration @GET("endpoint") Call<ResponseBody> sampleRequst(@Header("useragent") String UserAgent, @Header("deviceid") String DeviceID); --------------------------------------------------- آموزش ها به ترتیب در چند روز آینده اضافه میشه ... اگر آموزش دیگه ای به ذهنم رسید به لیست اضافه میکنم اگر آموزشی در رابطه با کتابخانه ی رتروفیت خواستید تو همین تاپیک یا پ.خ عنوان کنید تا در آینده به تاپیک اضافه ش کنم . موفق باشید
  10. مشکل در لایک در دیتابیس آنلاین

    سلام دوست عزیز طوری که من فهمیدم ریسایکلر ویو میاد و توی لیست ایتمایی که لایک نشده رو هم لایک شده نشون میده اگه ایتماتون زیاد باشه احتمالا هر هفت هشت آیتم یکی رو اینطوری نشون میده که میتونید با اضافه کردن کدای زیر به آداپترتون این مشکلو حل کنید : @Override public long getItemId(int position) { return position; } @Override public int getItemViewType(int position) { return position; } موفق باشید
  11. مشکل اتصال به مخزن گوگل

    این رو به فایل گریدلتون اضافه کنید قبل از jcenter() : google() احتمالا مشکلتون حل بشه در ضمن بیشتر پروکسی ها الان مشکل دارن سعی کنید از یه دونه بخرید 7 تومنه اگه لینک خواستید پ.خ بزنید بهتون لینک بدم برای خرید خودم یه ساله مشتریشم
  12. تاپیک جامع مشکلات نصب و راه اندازی اندروید استودیو

    همیشه باید به قند شکن وصل باشید تا بتونه پروژه رو بیلد کنه راه هایی هست که آفلاین و از طریق کش میتونه بیلد کنه اما همیشگی نیست و باز هم بیشتر وقت ها نیاز به قند شکن هستش و اینکه دقیقا نمیدونم چرا اما هیچوقت با سایفون و فریگیت نشد بیلد بگیرم و تا جایی که میدونم جز چند نفر بقیه هم نتونستن . متوجه نشدم امولاتور رو بچسبونید؟ امولاتور رو که نمیشه چسبوند و فقط برای اجرای برنامه استفاده میشه احتمالا منظور شما محیط دیزاینر هستش که باید سمت چپ توی قسمت Project پوشه ی app رو باز کنی بعد src و بعد layout توی این پوشه همه ی لایوت هایی که برای اکتیویتی ها و... ساخته شده رو میتونید باز کنید و ادیت کنید و اینکه توی هر اکتیویتی توی متد onCreate نوشته setContentView(R.layout.activity); کلید ctrl رو بگیرید و روی activity کلیک کنید باز هم لایوتش رو باز میکنه دیگه همیشه لازم نیست از منوی پروژه دنبالش بگردید موفق باشید
  13. موتور بازی ساز یونیتی

    یادمه قبلا که نصب کرده بودمش همچین مشکلی برام پیش اومده بود و تو تنظیمات درستش کرده بودم یه سرچ زدم روش زیر رو آورد Edit -> Preferences -> External Tools -> External Script Editor Set to MonoDevelop or Browse.
  14. تاپیک جامع مشکلات نصب و راه اندازی اندروید استودیو

    با سایفون کار به جایی نمیکشه دوست عزیز از هات اسپات استفاده کن یا یکی بخر یه ماهه هفت تومنه مشکل از بیلد نشدن پروژه هستش که همونطوری که میبینید کانکشن تایم اوت داده و نتونسته به خوبی با سرورش ارتباط برقرار کنه برای مشکل دوم هم باید از منوی File گزینه ی CloseProject رو بزنید تا هر دفعه موقع شروع منو رو بیاره
  15. ساخت صفحه اسپلش مثل اسنپ فود

    دوتا ایمیج ویو گذاشته و تو هرو تاش یه عکس رو گذاشته با ValueAnimator اومده و با سمت بالا حرکت داده اینم کدش : ValueAnimator anim = ValueAnimator.ofFloat(new float[]{0.0f, 1.0f}); anim.setRepeatCount(-1); anim.setInterpolator(new LinearInterpolator()); anim.setDuration(35000); anim.addUpdateListener(new AnimatorUpdateListener(this) { public void onAnimationUpdate(ValueAnimator animation) { float height = (float) backgroundOne.getHeight(); float translationY = height * ((Float) anim.getAnimatedValue()).floatValue(); img1.setTranslationY(-translationY); img2.setTranslationY(height - translationY); } }); anim.start();