我在每个车轮上都有一个带有单词的四轮选择器。目前,我的问题是每个车轮都拉相同的单词,您可以看到下面的代码。
我的问题是,有人可以帮助我给每个轮子提供自己的单词阵列吗?在下面的XML中,您可以看到每个轮子都有自己的ID,但是我无法弄清楚如何在Java中使用它们,因此每个轮子都有自己的特定数组。
private void initWheel(int id) {
WheelView wheel = getWheel(id);
wheel.setViewAdapter(new ArrayWheelAdapter<String>(this, new String[]{"Abc", "Foo", "Bar"}));
wheel.setCurrentItem((int)(Math.random() * 10));
wheel.addChangingListener(changedListener);
wheel.addScrollingListener(scrolledListener);
wheel.setCyclic(true);
wheel.setInterpolator(new AnticipateOvershootInterpolator());
}
private WheelView getWheel(int id) {
return (WheelView) findViewById(id);
}
我的XML是
<kankan.wheel.widget.WheelView
android:id="@+id/passw_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<kankan.wheel.widget.WheelView
android:id="@+id/passw_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<kankan.wheel.widget.WheelView
android:id="@+id/passw_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<kankan.wheel.widget.WheelView
android:id="@+id/passw_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
最佳答案
为每个ArrayWheelAdapter
实例使用一个不同的WheelView
实例。这样,您可以自定义每个WheelView
中显示的列表。
关键是这一条:
wheel.setViewAdapter(new ArrayWheelAdapter<String>(this, new String[]{"Abc", "Foo", "Bar"}));
在此处指定将出现在每个
WheelView
中的项目。您正在为每个ArrayWheelAdapter
实例创建一个新的WheelView
实例,但是它们都包含相同的String值集-这些就是WheelView
控件中显示的内容。也许您应该尝试类似的方法:
private void initWheel(int id, String[] values) {
WheelView wheel = getWheel(id);
wheel.setViewAdapter(new ArrayWheelAdapter<String>(this, values));
wheel.setCurrentItem((int)(Math.random() * 10));
wheel.addChangingListener(changedListener);
wheel.addScrollingListener(scrolledListener);
wheel.setCyclic(true);
wheel.setInterpolator(new AnticipateOvershootInterpolator());
}
然后为
initWheel
提供不同的值:initWheel( R.id.passw_1, new String[] { "Abc", "Foo" } );
initWheel( R.id.passw_2, new String[] { "Def", "Bar" } );