第一次调用Edittext.SelectAll()在Xamarin中不起作用android

问题描述:

我想在点击它时选择Edittext的文本。第一次调用Edittext.SelectAll()在Xamarin中不起作用android

public EditText Stock { get; set; } 

Stock.Click += (o, arg) => { 
    Stock.SelectAll(); 
}; 

当我点击股票时,Stock.SelectAll()被正确调用。但启动我的应用程序并单击文本后第一次,它不会被选中。以后每次点击它都会按预期工作。

+0

“但是第一次启动我的应用程序后文本将不会被选中”您希望文本被选中而没有点击吗? – Sufian

+0

这个点击监听器何时连接? – Sufian

+0

在我的类的构造函数中,我膨胀视图后 –

如果您想在选中焦点/点击时选择EditText中的所有文本,只需在xml中设置android:selectAllOnFocus="true"EditText即可。

还是在后面的代码,你可以通过设置:

Stock.SetSelectAllOnFocus(true); 

或者,如果你坚持要通过事件来选择所有文本,而不是使用Click事件FocusChange事件,第一次点击是焦点相关的事件处理,它不会被解雇。例如:

Stock.FocusChange += (sender, e) => 
{ 
    if (e.HasFocus) 
    { 
     Stock.SelectAll(); 
     var a = Stock.SelectionStart; 
     var b = Stock.SelectionEnd; 
     var text = Stock.Text.Substring(a, b); 
    } 
}; 
+0

问题是,因为它是第一个已经集中的编辑文本,所以这是行不通的。 –

+0

@ b.holz,真的吗?我只是测试了代码,对第一个着重的'EditText'工作正常。 –