0

我已经设法编码在每一行微调器中都有图像,但图像都是一样的。我想更改每个图像。你是怎样做的。这是我的 xml 和代码

xml

<?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="wrap_content"
 android:orientation="horizontal">
 <ImageView
 android:id="@+id/icon"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:src="@drawable/calendar"/>
 <TextView
 android:id="@+id/weekofday"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"/>
</LinearLayout>

这是java

ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, R.layout.row, R.id.weekofday, list);
dataAdapter.setDropDownViewResource(R.layout.row);
spinner.setAdapter(dataAdapter);

它显示相同的图像,因为它是在 row.xml 文件中设置的。我如何使它动态?

4

2 回答 2

1

为什么不创建自定义适配器并相应地编写代码。据我了解,它显示相同的图像,因为您已在 row.xml 中设置它。但是适配器如何知道应该在每一行上更改图像。

在自定义适配器中,您可以根据 Spinner Item 的位置(即索引)设置图像

于 2013-06-25T08:40:53.710 回答
0
         public class SavedSearchAdapter extends BaseAdapter {

          private Context mContext;
          private ArrayList<SavedSearch> mData;

          private boolean isEditMode = false;

          public SavedSearchAdapter(Context context , ArrayList<SavedSearch> data){
      mContext = context;
      mData = data;
           }


      @Override
         public int getCount() {
        return mData.size();
       }

         @Override
          public Object getItem(int position) {
        return mData.get(position);
        }

       @Override
          public long getItemId(int position) {
        return position;
      }

       @Override
          public View getView(int position, View convertView, ViewGroup parent) {

       View view;
       TextView tvTitle;
       ImageView ivDelete;

        if(convertView == null){
            view = View.inflate(mContext,          R.layout.screen_saved_search_item_row, null);
        }
         else{
        view = convertView;
         }




         tvTitle = (TextView)   view.findViewById(R.id.screen_saved_search_item_row_tv);
         tvTitle.setText(mData.get(position).name);

         ivDelete = (ImageView) view.findViewById(R.id.screen_saved_search_item_row_iv_delete);

         view.setTag(mData.get(position));

          return view;
           }


           }
于 2013-06-25T09:17:04.913 回答