Я создал один вариант выбора, используя фрагменты для рендеринга на странице мастера.Я хотел изучить использование изображений вместо фактического выбора текста.
Прямо сейчас у меня есть макет с одним выбором, фрагмент с одним выбором и страница с одним выбором, и все они отображаются нормально.Я просто думаю, что сделать свой выбор с помощью изображений будет лучше.
вот мой фрагмент xml:
<TextView style="@style/WizardPageTitle" />
<ListView android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:saveEnabled="false"
android:scrollbarStyle="outsideOverlay" />
Вот мой фрагмент java
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_page, container, false);
((TextView) rootView.findViewById(android.R.id.title)).setText(mPage.getTitle());
final ListView listView = (ListView) rootView.findViewById(android.R.id.list);
setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_single_choice,
android.R.id.text1,
mChoices));
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
// Pre-select currently selected item.
new Handler().post(new Runnable() {
@Override
public void run() {
String selection = mPage.getData().getString(Page.SIMPLE_DATA_KEY);
for (int i = 0; i < mChoices.size(); i++) {
if (mChoices.get(i).equals(selection)) {
listView.setItemChecked(i, true);
break;
}
}
}
});
return rootView;
}
А вот страница Java
public class SingleFixedChoicePage extends Page {
protected ArrayList<String> mChoices = new ArrayList<String>();
public SingleFixedChoicePage(ModelCallbacks callbacks, String title) {
super(callbacks, title);
}
@Override
public Fragment createFragment() {
return SingleChoiceFragment.create(getKey());
}
public String getOptionAt(int position) {
return mChoices.get(position);
}
public int getOptionCount() {
return mChoices.size();
}
@Override
public void getReviewItems(ArrayList<ReviewItem> dest) {
dest.add(new ReviewItem(getTitle(), mData.getString(SIMPLE_DATA_KEY), getKey()));
}
@Override
public boolean isCompleted() {
return !TextUtils.isEmpty(mData.getString(SIMPLE_DATA_KEY));
}
public SingleFixedChoicePage setChoices(String... choices) {
mChoices.addAll(Arrays.asList(choices));
return this;
}
public SingleFixedChoicePage setValue(String value) {
mData.putString(SIMPLE_DATA_KEY, value);
return this;
}
}
Как добавить изображения в качестве параметров выбора и получить эквивалентное значение ответа (строка).