[英]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)
:
創建一個新類,繼承java.lang.object
和TextView.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; } }
然后,您可以將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.