سوال خارج از موضوع جلسه - تغییر Theme با دو بار Event روی صفحه

پرسیده شده
فعالیت 1238 روز پیش
دیده شده 571 بار
0

سلام خسته نباشید 

من می خوام یک اپلیکیشن رو طراحی بکنم که وقتی کاربر 2بار روی صفحه کیلیک کرد تم برنامه تغییر بکنه.

من باید چه کدی بنویسم تا بفهمم که کاربر 2 بار روی صفحه کیلیک کرده؟؟؟

ممنون

فایل پیوست

2
حذف شده

سلام و احترام

 

این کار درستی نیست که شما بیایید وقتی کاربر روی صفحه نمایش Event ی(حال دو بار یا یک بار) انجام داد تم تغییر کند چرا که اگر کاربر روی Button ویا روی TextView و یا روی یک فضای خالی کلیک کند در اصل عمل انجام دادن یک event انجام میشودو تم تغییر میکند.

تغییر تم بر اساس زمان و یا گذاشتن یک چک باکس در فرگمنت setting روش هایی هستن که شما میتوانید پیاده سازی کنید.

 

اما اگر چه این راه حل راه درستی نیست ولی راهنمایی من به شما نسبت به دانش در حال حاظرتون

در ویوگروپ(root) مربوطه تون (مثلا : RelativeLayout) یک id ست کنید و عمل onClickListener بر روی اون فعال کنید  و یک شرط گذاشته که اگر counter عدد دو بود تم تغییر کند البته که در انتها وقتی تم تغییر کرد یادتون باشه که counter رو صفر کنید و سپس به عنوان یک boolean اون مقدار رو در sharedPref نگه داری کنید تا هنگامی که کاربر وارد اپلیکیشن شد بر اساس اون مقدار در sharedperf تم تغییر کند اگرچه باز هم این روش روشی درستی نیست و صرفا محض تمرین شما خدمتتون عرض میکنم ضمن اینکه روش های دیگه ای هم هستن ولی بر اساس دانش فعلی شما این مورد رو نوشتم 

 به عنوان مثال:

این اموزش هم که به صورت فارسی هست تغییر تم اپلیکیشن بدون reset شدن خدمت شما:

https://virgool.io/MobileLab/%D۸%A۲%D۹%۸۵%D۹%۸۸%D۸%B۲%D۸%B۴-%D۹%۸۸%DB%۸C%D۸%AF%D۸%A۶%D۹%۸۸%DB%۸C%DB%۸C-%D۹%BE%DB%۸C%D۸%A۷%D۸%AF%D۹%۸۷-%D۸%B۳%D۸%A۷%D۸%B۲%DB%۸C-%D۸%AA%D۹%۸۵-%D۸%AA%D۸%A۷%D۸%B۱%DB%۸C%DA%A۹-dark-%D۸%AF%D۸%B۱-%D۸%A۷%D۹%BE%D۹%۸۴%DB%۸C%DA%A۹%DB%۸C%D۸%B۴%D۹%۸۶-%D۹%۸۷%D۸%A۷%DB%۸C-%D۸%A۷%D۹%۸۶%D۸%AF%D۸%B۱%D۹%۸۸%DB%۸C%D۸%AF-qgcyujxvt۶zw

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/mainlayout">
 <!- Your other view->
</Relativelayout>
RelativeLayout root = findViewById(R.id.mainlayout);
 root.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

    }

 });

 

 

 

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

15 آذر 99

حذف شده
خیلی ممنون از راهنمایتون ولی این کاری که شما فرمودید فقط زمانی کار می کنه که کاربر یک برا کیلیک کرد ولی من می خوام کاربر بعد از دوبار کیلیک کردن تم عوض بشه !!
حذف شده
رحیم جان خدمتتون عرض کردم در خط 9 که یک instancevariable به نام counter تغریف کنید و وقتی کاربر روی صفحه click کرد مقدار از 0 به یک و از یک به 2 تغییر کنم و وقتی counter به عدد 2 رسید تم تغییر کند و وقتی تم تغییر کرد مقدار counter رو به صفر تغییر بدید برای دفعات بعد . البته بازم خدمتتون عرض کنم این روش از لحاظ مموری و خیلی چیزای دیگه اصلا درست نیست . (بهتره بگم به هیچ وجه)
پوریا شفیعی

15 آذر 99

حذف شده
خدمتتون عرض کنم اگر در سرفصل RxJava بودید این راه رو با Subject میتونستم راهنماییتون کنم.
پوریا شفیعی

15 آذر 99

حذف شده
اخه در این روش وقتی کاربر کیلیک کرد و بعد از گذشت یک دقیقه دوبار کیلیک کرد تم عوض میشه من می خوام که وقتی بیشتر از 20 ثانیه کیلیک دوم نشد کیلیک اولی حذف بشه و کاربر بیاد دوباره 2 کیلیک پشت سر هم انجام بده!! ممنون
حذف شده
میتونید با timer یه الگوریتم طبق سناریوتون بنویسید .
پوریا شفیعی

15 آذر 99