Использовать изображения как варианты множественного выбора во фрагментах - PullRequest
0 голосов
/ 01 февраля 2019

Я создал один вариант выбора, используя фрагменты для рендеринга на странице мастера.Я хотел изучить использование изображений вместо фактического выбора текста.

Прямо сейчас у меня есть макет с одним выбором, фрагмент с одним выбором и страница с одним выбором, и все они отображаются нормально.Я просто думаю, что сделать свой выбор с помощью изображений будет лучше.

вот мой фрагмент 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;
}

}

Как добавить изображения в качестве параметров выбора и получить эквивалентное значение ответа (строка).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...