Java 在android中向微调器行添加唯一图像
我已经设法编码在每一行微调器中都有图像,但是图像都是相同的。我想更改每个图像。你是怎么做到的。这是我的xml和代码 xmlJava 在android中向微调器行添加唯一图像,java,android,android-spinner,Java,Android,Android Spinner,我已经设法编码在每一行微调器中都有图像,但是图像都是相同的。我想更改每个图像。你是怎么做到的。这是我的xml和代码 xml 这是java ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, R.layout.row, R.id.weekofday, list); dataAdapter.setDropDownViewResource(R.layout.row); spinner.setAd
这是java
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, R.layout.row, R.id.weekofday, list);
dataAdapter.setDropDownViewResource(R.layout.row);
spinner.setAdapter(dataAdapter);
ArrayAdapter dataAdapter=新的ArrayAdapter(this,R.layout.row,R.id.weekofday,list);
dataAdapter.setDropDownViewResource(R.layout.row);
spinner.setAdapter(dataAdapter);
它显示相同的图像,因为它是在row.xml文件中设置的。如何使其动态化?为什么不创建自定义适配器并相应地编写代码呢。据我所知,它显示相同的图像,因为您在row.xml中设置了它。但适配器如何知道每行上的映像都应该更改呢 在自定义适配器中,您可以根据微调器项的位置(即索引)设置映像{
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;
}
}
私有上下文;
私有ArrayList mData;
私有布尔isEditMode=false;
public SavedSearchAdapter(上下文、ArrayList数据){
mContext=上下文;
mData=数据;
}
@凌驾
public int getCount(){
返回mData.size();
}
@凌驾
公共对象getItem(int位置){
返回mData.get(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图;
文本视图标题;
ImageView-ivDelete;
if(convertView==null){
视图=视图。充气(mContext,R.layout.screen\u saved\u search\u item\u row,null);
}
否则{
视图=转换视图;
}
tvTitle=(TextView)view.findViewById(R.id.screen\u saved\u search\u item\u row\u tv);
tvTitle.setText(mData.get(position.name));
ivDelete=(ImageView)view.findViewById(R.id.screen\u saved\u search\u item\u row\u iv\u delete);
view.setTag(mData.get(position));
返回视图;
}
}
我不知道如何进行自定义适配器请参阅此链接:请参阅。在这里,他正在尝试编写自定义适配器。你可以用同样的。如果你需要更多的帮助,请告诉我
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;
}
}