我使用了稍微修改过的NumberPicker,当活动开始时,已经选择了默认值。这很烦人,因为它会调出键盘或调出对话框进行剪切/复制/粘贴。我确实指示键盘保持不动但它仍处于选中状态,并将显示剪切/复制/粘贴对话框。滚动值后,不再选择该数字,它会正常运行。有谁知道如何设置NumberPicker在启动时没有选择任何东西?
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public class NumPicker extends NumberPicker
{
public NumPicker(Context context)
{
super(context);
}
public NumPicker(Context context, AttributeSet attrs)
{
super(context, attrs);
processAttributeSet(attrs);
}
public NumPicker(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
processAttributeSet(attrs);
}
/**
* Reads the xml, sets the properties
*/
private void processAttributeSet(AttributeSet attrs)
{
setMinValue(attrs.getAttributeIntValue(null, "min", 0));
setMaxValue(attrs.getAttributeIntValue(null, "max", 0));
setValue(4);
}
}
这是在xml中使用它的方式:
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentTop="true"
android:layout_marginRight="50dp"
android:layout_marginEnd="50dp"
android:layout_marginTop="40dp"
style="@style/CustomText"
max="100"
min="2"
答案 0 :(得分:2)
发生这种情况的原因是NumberPicker是您活动中的第一个(或唯一的?)可聚焦元素。您可以通过将此属性添加到根视图来将焦点捕获到主布局视图中:
android:focusableInTouchMode="true"