簡體   English   中英

Xamarin.Android手動調用EditText的編輯器

[英]Xamarin.Android invoking the editor of EditText manually

我有一個EditText(稱為Stock)。 我向Stock添加了EditorAction。 當我單擊“股票”時,將打開編輯器,一切都會按預期進行。 現在,我希望具有相同的行為,但需要從代碼的不同部分進行調用。 我試圖調用Stock.CallOnClick(),但是什么也沒發生。 我的印象是編輯器的打開是由OnClick()事件引起的。

模擬EditText的相同行為的正確調用是什么?

謝謝。

現在,我希望具有相同的行為,但需要從代碼的不同部分進行調用。 我試圖調用Stock.CallOnClick(),但是什么也沒發生。

如果我正確理解invoked from a different part in the code ,則需要使用EditText.SetOnEditorActionListener(TextView.IOnEditorActionListener)

  1. 創建一個新類,繼承java.lang.objectTextView.IOnEditorActionListener並實現它:

     public class MyAction : Java.Lang.Object, TextView.IOnEditorActionListener { public void Dispose() { this.Dispose(); } public bool OnEditorAction(TextView v, [GeneratedEnum] ImeAction actionId, KeyEvent e) { //insert your codes here return true; } } 
  2. 然后,您可以將MyAction的實例傳遞給SetOnEditorActionListener

     etStock = FindViewById<EditText>(Resource.Id.etStock); etStock.SetOnEditorActionListener(new MyAction()); 

因此,您需要調用InputMethodManager並在需要的地方調用ShowSoftInput(),並在editoraction事件中調用HideSoftInput()。

        buttonStock.Click += delegate
        {
            stock.RequestFocus(); // this seems to be necessary
            stock.SelectAll(); // this is convenient
            var imm = ((InputMethodManager)GetSystemService(InputMethodService));
            imm.ShowSoftInput(stock, ShowFlags.Forced);
        };

股票是我的EditText。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM