将图像用作片段中的多选选项

时间:2019-02-01 02:28:28

标签: android android-studio android-fragments

我使用片段创建了一个单选选项,以在向导寻呼机上呈现。我想研究使用图像代替实际的文本选择。

现在,我已经创建了“单选布局”,“单选片段”和“单选”页面,所有渲染都可以。我只是认为使用图像的方式做出选择会更好。

这是我的片段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;
}

这是Page 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;
}

}

如何添加图像作为选择选项并获得等效的答案值(字符串)。

0 个答案:

没有答案