رفتن به مطلب
  • 0

گوش دادن به رویداد کپی و نمایش یک ایکون شناور


Gray Mind

سوال

سلام 

من میخوام تو برنامه به رویداد کپی و کات گوش بدم و هروقت هرجا این عمل صورت گرفت یه باتن به صورت شناور نمایش داده بشه

و با زدن اون یه اکتیویتی شناور دیگه باز بشه و مقدار کپی شده در یه ادیت تکست نمایش داده بشه

 

چطور میتونم همچین چیزی رو عملی کنم؟ :fekr:

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

 

ممنون میشم راه رو نشونم بدید :give_rose:

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

7 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

فورس کلوز میده  :fekr:

این یه سورس برای شما.

فقط یادتون باشه از اندروید 3 به بالا جواب میده.

http://s2.picofile.com/file/8264941468/Clipboardtest.zip.html

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

سلام

 

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

 

تعریف این متغیر بصورت عمومی داخل کلاس سرویس:

ClipboardManager.OnPrimaryClipChangedListener listen;

و Handle کردن ایونت داخل رویداد مثلا start سرویس:

this.listen = new ClipboardManager.OnPrimaryClipChangedListener(){

            public void onPrimaryClipChanged() {
               //نشون دادن پنجره شناور
            }
            
        };
لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

سلام

 

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

 

تعریف این متغیر بصورت عمومی داخل کلاس سرویس:

ClipboardManager.OnPrimaryClipChangedListener listen;

و Handle کردن ایونت داخل رویداد مثلا start سرویس:

this.listen = new ClipboardManager.OnPrimaryClipChangedListener(){

            public void onPrimaryClipChanged() {
               //نشون دادن پنجره شناور
            }
            
        };

 

ممنون از جوابت داداش

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

import android.app.Service;
import android.content.ClipboardManager;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class MainActivity extends Service {
    ClipboardManager.OnPrimaryClipChangedListener listen;
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        this.listen=new ClipboardManager.OnPrimaryClipChangedListener() {
            @Override
            public void onPrimaryClipChanged() {
                Toast.makeText(getApplicationContext(),"Copied",Toast.LENGTH_SHORT).show();
            }
        };
        return Service.START_STICKY;
    }

    @Nullable
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
}

الان این کد مشکلش چیه که وقتی چیزی کپی میشه توست نمایش داده نمیشه؟

منبع آموزش درست و حسابی پیدا نکردم

چطوری یه سرویس رو موندگار کنم؟

 

اگه میشه یه توضیح کلی بده که اصل موضوع دستم بیاد ممنون :girl_blush:  :fekr:  :give_rose:

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

اگه میشه یه توضیح کلی بده که اصل موضوع دستم بیاد ممنون :girl_blush::fekr::give_rose:

همون MainActivity تون رو Extends سرویس کردین؟ :sorry: :sorry:

یه کلاس جدید بسازید، بذارید mainActvity سرجاش باشه. فقط توی رویداد OnCreate اکتیویتی سرویس رو استارت کنید.

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

نه داداش یه کلاس ساختم و اکستندش کردم

یه اکتیویتی دیگه داشتم یعنی دوتا main و main2activity رو اکتیویتی لانچر گذاشتم

حالا تنبلی شد که تا فهمیدن چم و خم کار اسم مهم نیست :DD:

تو اکتیویتی لانچر با کد استارت سرویس ، سرویس رو استارت میکنم

مثلا یه توست میذارم که سرویس اجرا شد

اما رویداد کپی رو نمیفهمه :|

یعنی وقتی از برنامه میرم بیرون و یه چیزی کپی میکنم هیچ پیامی نمیده

درحالی که گفتم وقتی چیزی کپی شد یه توست نمایش بده :fekr:

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

نه داداش یه کلاس ساختم و اکستندش کردم

یه اکتیویتی دیگه داشتم یعنی دوتا main و main2activity رو اکتیویتی لانچر گذاشتم

حالا تنبلی شد که تا فهمیدن چم و خم کار اسم مهم نیست :DD:

تو اکتیویتی لانچر با کد استارت سرویس ، سرویس رو استارت میکنم

مثلا یه توست میذارم که سرویس اجرا شد

اما رویداد کپی رو نمیفهمه :|

یعنی وقتی از برنامه میرم بیرون و یه چیزی کپی میکنم هیچ پیامی نمیده

درحالی که گفتم وقتی چیزی کپی شد یه توست نمایش بده :fekr:

قبل از این کد:

this.listen=new ClipboardManager.OnPrimaryClipChangedListener()

اینو اضافه کنید برای اینیشیالایز:

ClipboardManager clipboardManager = (ClipboardManager)this.getSystemService("clipboard");
        clipboardManager.addPrimaryClipChangedListener(this.listen);
لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

قبل از این کد:

this.listen=new ClipboardManager.OnPrimaryClipChangedListener()

اینو اضافه کنید برای اینیشیالایز:

ClipboardManager clipboardManager = (ClipboardManager)this.getSystemService("clipboard");
        clipboardManager.addPrimaryClipChangedListener(this.listen);

فورس کلوز میده  :fekr:

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

بایگانی شده

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

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...