본문 바로가기

프로그래밍/안드로이드-자마린폼즈

Xamarin Forms 에서 클립보드 이벤트 처리 1

Xamarin Forms에서 ClipBoard의 변경을 모니터링 해서 처리하는 방법.

 

안드로이드 프로젝트의 Activity에 구현하고 Forms 프로젝트와 인터페이싱을 통해 처리할수 있다.

 

MainActivity.cs

using Android.App;
using Android.Content;
using System;
using testProject.Module;

namespace withGmpAndroid.Droid
{
    [Activity(Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        protected override void OnCreate(Bundle bundle)
        {
            TabLayoutResource = Resource.Layout.Tabbar;
            ToolbarResource = Resource.Layout.Toolbar;
            
            base.OnCreate(bundle);

            ClipboardManager mng =  (ClipboardManager)GetSystemService(ClipboardService);
            mng.PrimaryClipChanged += Mng_PrimaryClipChanged;

            global::Xamarin.Forms.Forms.Init(this, bundle);
            LoadApplication(new App(new AndroidInitializer()));
        }

        private void Mng_PrimaryClipChanged(object sender, EventArgs e)
        {
            var msg = ((ClipboardManager)sender).Text;
        }
    }
}

위의 코드에서 필요한 부분은 아래와 같다.

 

using Android.Content;

...

ClipboardManager mng = (ClipboardManager)GetSystemService(ClipboardService);

mng.PrimaryClipChanged += Mng_PrimaryClipChanged;

...

Mng_PrimaryClipChanged 이벤트 함수 구현

 

클립보드에 변경 이벤트가 발생하면 이벤트 함수를 통해 처리할 수 있다.

 

PCL 프로젝트에서 사용예제는 아래 게시글에 있다.

2019/06/18 - [프로그래밍/안드로이드-자마린폼즈] - Xamarin Forms 에서 클립보드 이벤트 처리 2