スピナーアイテムの選択で、ボタンの可視性を VISIBLE または GONE として設定しています:-
selectUserTypeSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
FilterUserType newUserType = FilterUserType.get(position);
if(filter.userType != newUserType){
filter.userType = newUserType;
ScrollView mainScrollView = (ScrollView) findViewById(R.id.mainLayout);
switch (newUserType) {
case AnyUser:
case CurrentUser:{
selectUserBtn.setVisibility(View.GONE);
break;
}
case SpecificUser:{
selectUserBtn.setVisibility(View.VISIBLE);
break;
}
default:
break;
}
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {}
});
ここでの問題は、このアクションの後にビューが更新されないことですが、ページで EditText を 1 つ選択し、キーボードが起動すると、更新され、目的の動作が表示されます。
switch-case を次のように編集してみました:-
switch (newUserType) {
case AnyUser:
case CurrentUser:{
selectUserBtn.setVisibility(View.GONE);
mainScrollView.invalidate();
break;
}
case SpecificUser:{
selectUserBtn.setVisibility(View.VISIBLE);
mainScrollView.invalidate();
break;
}
default:
break;
}
}
しかし、これも機能していません
参考までに、私は自分のプロジェクトでテーマを使用HoloEverywhere
しています。このスピナーは HoloEverywhere ウィジェットのものです。