【发布时间】:2016-08-04 13:35:49
【问题描述】:
我有一个按钮:
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="text"
android:id="@+id/test"
android:onClick="test"
android:visibility="gone"/>
我有 3 个 Spinner,我希望当所有 3 个 Spinner 都选择了一个值时,Visible 中的按钮可见性会发生变化。
如果选择了 3 个值,是否有不同的方法可以在不检查任何时候选择微调器的情况下执行此操作? 这种类型的操作是否有“观察者”?
编辑
这是我此刻在微调器中调用onItemSelected 的函数:
public void checkSpinner(){
Spinner spinner1 = (Spinner) findViewById(R.id.spinner1);
assert spinner1 != null;
int position1= spinner1.getSelectedItemPosition();
Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
assert spinner2 != null;
int position2=spinner2.getSelectedItemPosition();
Spinner spinner3 = (Spinner) findViewById(R.id.spinner3);
assert spinner3 != null;
int position3=spinner3.getSelectedItemPosition();
Button button = (Button) findViewById(R.id.button);
if((position1>0) && (position2>0)&&(position3>0))
{
button .setVisibility(View.VISIBLE);
}else{
button .setVisibility(View.GONE);
}
}
【问题讨论】:
-
我做了一个功能,每次选择一个微调器时都会启动,我问是否有其他方法,或者像“一只手表”这样的方法来检查是否选择了值
-
你能用代码更新你的问题吗?
-
该方法似乎没问题,除了一些性能问题。你什么时候打电话给
checkSpinner()? -
我在
onItemSelected(AdapterView<?> parent, View view, int position, long id) { checkSpinner(); }调用这个方法在所有3个微调器中 -
我猜你面临同样的问题。检查那里的任何解决方案是否有效 - stackoverflow.com/questions/4923310/…