このダイアログを作成しようとしています:
。
スピナーがカスタム値に設定されている場合、テキストエディットが自動的に表示されます。私は呼びかけView.setVisible()
ていますTextView
が、可視性はすぐには評価されませんが、別の変更を待ちます-たとえば、別の行を追加したり、日付を設定したりします。
コード:
...
customText = (EditText) v.findViewById(R.id.edit_custom_text);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);
s.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
SpinnerItem si = (SpinnerItem) adapterView.getItemAtPosition(i);
evt.type = si.eventType;
if (evt.type == EventType.CUSTOM) {
customText.setVisibility(View.VISIBLE);
} else {
customText.setVisibility(View.GONE);
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
//do nothing
}
});
私はView.invalidate()
(親の視点で)View.refreshDrawableState()
試しましたが、運がありませんでした:/
編集:上記のコードに到達し(デバッガーによって検証され)、私も試しView.INVISIBLE
ました。ビューはすぐには更新されませんが、ビューが再度変更された後にのみ更新されます。