我需要在NumberPicker中获取EditText的引用。我知道它会在picker视图本身上出现某种findViewById,但是我无法找到它的id:
final NumberPicker numberPicker = (NumberPicker) view.findViewById(R.id.numberpicker);
EditText numberPickerEditText = (EditText) numberPicker.findViewById(WHAT IS THE ID???)
我知道NumberPicker有很多有用的方法用于值等,但是我需要更精细的控制,例如在选择器打开时显示键盘,我不认为我可以在没有引用EditText本身的情况下执行此操作(如果我错了,请随时纠正我!)
答案 0 :(得分:4)
如果您查看xml
使用的NumberPicker
文件,您会发现id
正在寻找EditText
numberpicker_input
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<ImageButton android:id="@+id/increment"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/numberpicker_up_btn"
android:paddingTop="22dip"
android:paddingBottom="22dip"
android:contentDescription="@string/number_picker_increment_button" />
<EditText
android:id="@+id/numberpicker_input"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.Large.Inverse.NumberPickerInputText"
android:gravity="center"
android:singleLine="true"
android:background="@drawable/numberpicker_input" />
<ImageButton android:id="@+id/decrement"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/numberpicker_down_btn"
android:paddingTop="22dip"
android:paddingBottom="22dip"
android:contentDescription="@string/number_picker_decrement_button" />
</merge>
1}}:
id
因此,您可以使用相同的NumberPicker numberPicker = (NumberPicker) view.findViewById(R.id.numberpicker);
EditText numberPickerEditText = (EditText) numberPicker.findViewById(R.id.numberpicker_input)
:
id
修改强>
好的,看起来这个android.internal.id
位于numberPicker.findViewById(Resources.getSystem().getIdentifier("numberpicker_input", "id", "android"))
内,因为它是系统ID,为了能够访问它,你必须这样做:
log
答案 1 :(得分:0)
您可以在不参考编辑文本的情况下显示软键盘
getWindow()
.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
答案 2 :(得分:0)
你必须创建一个视图并对其进行充气
View yourView = li.inflate(R.layout.your_view, null);
之后,必须将editText初始化为:
EditText yourEditText = (EditText) yourView.findViewById(R.id.text_symbol);
一定会有用......试一试,让我知道它是否适合你 快乐编码兄弟:)