我使用片段创建了一个单选选项,以在向导寻呼机上呈现。我想研究使用图像代替实际的文本选择。
现在,我已经创建了“单选布局”,“单选片段”和“单选”页面,所有渲染都可以。我只是认为使用图像的方式做出选择会更好。
这是我的片段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;
}
}
如何添加图像作为选择选项并获得等效的答案值(字符串)。