Vin*_*man 4 android android-edittext numberpicker
我需要在 NumberPicker 中获取对 EditText 的引用。我知道它会是选择器视图本身的某种 findViewById,但我一直无法为它找到 android 的 id:
final NumberPicker numberPicker = (NumberPicker) view.findViewById(R.id.numberpicker);
EditText numberPickerEditText = (EditText) numberPicker.findViewById(WHAT IS THE ID???)
Run Code Online (Sandbox Code Playgroud)
我知道 NumberPicker 具有大多数有用的值等方法,但我需要一些更精细的控制,例如在选择器打开时显示键盘,我认为如果没有对 EditText 本身的引用,我无法做到这一点(随意如果我错了,请纠正我!)
如果你想看看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>
Run Code Online (Sandbox Code Playgroud)
因此,您可以使用相同的方法来做到这一点id:
NumberPicker numberPicker = (NumberPicker) view.findViewById(R.id.numberpicker);
EditText numberPickerEditText = (EditText) numberPicker.findViewById(R.id.numberpicker_input)
Run Code Online (Sandbox Code Playgroud)
编辑
好的,看起来这id是 inside android.internal.id,因为它是一个系统 ID,为了能够访问它,你必须这样做:
numberPicker.findViewById(Resources.getSystem().getIdentifier("numberpicker_input", "id", "android"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1731 次 |
| 最近记录: |