目前我正在尝试让自定义微调器工作。它使用自定义布局,其arrayadapter由自定义对象填充。现在我想在旋转器中的每个对象旁边显示一个图标。
到目前为止,我使用的代码如下:
// create spinner
logicSpinner = (Spinner) view.findViewById(R.id.logicSpinner);
logicAdapter = new ArrayAdapter<SearchLogic>(parent, R.layout.icon_spinner_layout, R.id.typesfield, myLogics);
logicSpinner.setAdapter(logicAdapter);
其中myLogics提供具有SearchLogic类型的ArrayList。 SearchLogic类看起来像这样
public class SearchLogic {
private String otherString;
private String localString;
private int imageRes;
public SearchLogic(String otherString, String localString, int imageRes){
this.otherString = otherString;
this.localString = localString;
this.imageRes = imageRes;
}
/*
* let's override the toString method since thats the method a spinner object uses as default value for its entries
*/
@Override
public String toString(){
return this.localString;
}
icon_spinner_layout如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/ObjectSpecificIcon"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/ic_launcher"/>
<TextView
android:id="@+id/typesfield"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
现在我正在创建一个新的SearchLogic对象并将其添加到myLogics中,如下所示:
myLogics.add(new SearchLogic("string1", "string2", R.drawable.iconXYZ));
我希望“ObjectSpecificIcon”填充传递给SearchLogic对象的图标。怎么做?是否可以在layout.xml文件中提供“占位符”而不是提供硬编码的src?或任何其他方式?
答案 0 :(得分:0)
这是如何完成的:Method for Spinner item click listener with SimpleCursorAdapter and ViewBinder
基本上你必须为Array / CursorAdapter使用自定义View Binder。看看我自己的答案,以解决我在解决问题时遇到的最终问题。