是的,你可以一起破解一个。尽管由于 API 的变化,这段代码的生命周期很可能很短。
int foo = 7;
Object o = findViewById(ids[i]);
Class<? extends Object> c = o.getClass();
Method m = c.getMethod("setCurrent", int.class);
m.invoke(o, foo);
String[] displayedValues = new String[] { "$00", "$01", "$02", "$03", "$04",
"$05", "$06", "$07", "$08", "$09", "$10", "$11",
"$12", "$13", "$14", "$15", "$16", "$17", "$18", "$19", "$20", "$21",
"$22", "$23", "$24", "$25"};
Method m = c.getMethod("setRange", int.class, int.class, String[].class);
M.invoke(o, 0, 25, displayedValues);
然后在你的布局中放几个这样的:
<com.android.internal.widget.NumberPicker
android:id="@+id/picker1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true" />
setCurrent set 是选择器的索引,在 foo 的情况下,它的值是“$07”。 setRange 设置要在选取器中显示的值。
祝你好运。