具有动态对象和动态图标的自定义微调器

时间:2011-11-01 19:32:06

标签: java android android-layout android-widget android-arrayadapter

目前我正在尝试让自定义微调器工作。它使用自定义布局,其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?或任何其他方式?

1 个答案:

答案 0 :(得分:0)

这是如何完成的:Method for Spinner item click listener with SimpleCursorAdapter and ViewBinder

基本上你必须为Array / CursorAdapter使用自定义View Binder。看看我自己的答案,以解决我在解决问题时遇到的最终问题。