如何将剪贴板粘贴到mono android c#中的edittext?

Ali*_*efi 0 c# android xamarin.android

我想将android剪贴板文本粘贴到我的编辑文本中.

var button = MainActivity.This.FindViewById<Button> (Resource.AddLinks.btn_Paste);
EditText txt_Address = MainActivity.This.FindViewById<EditText> (Resource.AddLinks.txt_Address);
button.Click += (sender,e) =>
{
    txt_Address.Text=//How to Paste Android Clipbord?

};
Run Code Online (Sandbox Code Playgroud)

Kil*_*man 6

这就像你想用Xamarin.Android做的其他事情.您需要首先了解如何在原生Android/Java上进行操作.然后将其转换为C#.

这是从剪贴板管理器到Android解决方案Android复制/粘贴的链接

以下是C#中的示例:

//for copy
var clipboard = (ClipboardManager)GetSystemService(ClipboardService);
var clip = ClipData.NewPlainText("your_text_to_be_copied");

clipboard.PrimaryClip = clip;


// And paste it
var clipboard = (ClipboardManager)GetSystemService(ClipboardService);

var pasteData = "";

if (!(clipboard.HasPrimaryClip)) 
{
    // If it does contain data, decide if you can handle the data.

} 
else if (!(clipboard.PrimaryClipDescription.HasMimeType(ClipDescription.MimetypeTextPlain)))
{

    // since the clipboard has data but it is not plain text

} 
else 
{
    //since the clipboard contains plain text.
    var item = clipboard.PrimaryClip.GetItemAt(0);

    // Gets the clipboard as text.
    pasteData = item.Text;
}
Run Code Online (Sandbox Code Playgroud)

将Java转换为C#的基本经验法则.

  • Setters和Getters通常被翻译为Properties
    • String text = item.getText(); => var text = item.Text;
    • item.setText(text); => item.Text = text;
  • ANDROID_CONSTANTS通常被翻译为Enums或Class const字段
    • Context.CLIPBOARD_SERVICE => Context.ClipboardService
    • MIMETYPE_TEXT_PLAIN => ClipDescription.MimetypeTextPlain

有关更多信息,请参见http://docs.xamarin.com/guides/android/advanced_topics/api_design/.