使用自定义列表视图适配器和不同布局的结果不正确

msn

您好,Stack Overflow Android用户,

请帮助解决以下问题:我正在尝试创建一个列表视图,在某些情况下,某些行的背景颜色会针对不同的视图而改变。这是一些代码。这是MainActivity.class

public class MainActivity extends Activity {
    ListView list;
    ArrayList<Map<String, String>> values;  
    String[] names = {"Astor", "Brian", "Cody", "Dexter", "Emma", "Finch", "Glenn"};
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list = (ListView) findViewById(R.id.list);

        values = new ArrayList<Map<String, String>>();
        for(int i = 0; i<6; i++){
            Map<String, String> map = new HashMap<String, String>();
            map.put("id", ""+i);
            map.put("title", names[i]);
            values.add(map);            
        }       
        final mAdapter adapter = new mAdapter(this, R.layout.list1, values);        
        list.setAdapter(adapter);
        list.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(getApplicationContext(), "itemClick: position = " + position + ", id = " + id, Toast.LENGTH_LONG).show();
            }
          });   
    }

这是我的自定义适配器类mAdapter.class:

public class mAdapter extends ArrayAdapter{
    private ArrayList<Map<String, String>> values;
    public mAdapter(Context context, int textViewResourceId, ArrayList<Map<String, String>> values){
        super(context, textViewResourceId, values);
        this.values = values;
    }
    public View getView(int pos, View v, ViewGroup p){
        LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        if(v == null){              
            v = inflater.inflate(R.layout.list1, null);             
        }
        TextView t = (TextView) v.findViewById(R.id.title);
        t.setText("Position: " + pos);              
        if(pos == 2){               
            v.setBackgroundColor(0x30ff0000);
            t.setText("!!!Position: " + pos);
        }

        return v;
    }
}

当我运行该应用程序时,会得到以下结果:默认背景色是灰色。如您所见,不仅更改了带有“ pos” 2的行的颜色,而且更改了带有“ pos” 0和5的行的颜色。但是,另一方面,仅更改了带有“ pos”等于2的右行的文本。谁能解释为什么会发生这种情况,以及解决该问题的方法是什么?

谢谢

PS似乎,我没有足够的观点来发表图片。这是结果http://i.stack.imgur.com/4bHeC.png的屏幕截图

阿吉特·普拉塔普·辛格(Ajit Pratap Singh)

在其他情况下,也应将默认颜色设置为灰色

像这样

if(pos == 2){               
        v.setBackgroundColor(0x30ff0000);
        t.setText("!!!Position: " + pos);
    }
else {
    v.setBackgroundColor(color code for grey);
}

发生这种情况是因为您正在重用转换视图

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用自定义适配器和视图持有器的Android列表视图

来自分类Dev

如何使用Hashmap为自定义列表视图创建自定义适配器

来自分类Dev

无法解析适配器中自定义列表视图的布局

来自分类Dev

自定义适配器不显示列表视图

来自分类Dev

在自定义适配器的列表视图项中加载不同的图像

来自分类Dev

使用自定义适配器视图时,如何使列表视图可点击?

来自分类Dev

在自定义列表视图适配器中使用多个视图

来自分类Dev

自定义列表视图和适配器覆盖getView,更改文本颜色

来自分类Dev

滚动列表视图和自定义适配器的问题

来自分类Dev

Android Java:用于滚动和过滤问题的列表视图的自定义适配器

来自分类Dev

创建适配器时,布局显示不正确

来自分类Dev

使用自定义适配器的Listview搜索无法正确显示搜索结果

来自分类Dev

如何使用 REST API、自定义列表视图、适配器、行布局在 xamarin android c# 中填充列表视图

来自分类Dev

使用外部XML文件进行自定义列表视图适配器?

来自分类Dev

我无法使用自定义适配器数据清除列表视图?

来自分类Dev

对于使用一个自定义适配器的多个列表视图

来自分类Dev

android自定义组视图布局不正确

来自分类Dev

使用自定义列表适配器保存和还原ListView

来自分类Dev

在Android中重复放大子视图以查看自定义适配器的布局

来自分类Dev

如何使用自定义适配器将数组中的值设置为列表视图,并为行赋予不同的颜色

来自分类Dev

从自定义适配器获取父布局

来自分类Dev

自定义文本视图适配器不适用于列表视图

来自分类Dev

在对话框片段和自定义列表视图适配器之间实现接口时出错

来自分类Dev

Android - 将搜索栏添加到自定义列表视图和简单适配器

来自分类Dev

在ListFragment的适配器显示的列表之前添加自定义布局

来自分类Dev

在ListFragment的适配器显示的列表之前添加自定义布局

来自分类Dev

将列表视图的数据从Asynctask传递到自定义列表适配器类

来自分类Dev

列表视图中的页脚按钮,如何从自定义列表适配器获取价值

来自分类Dev

setOnClickListener不使用自定义适配器和自定义ListView触发

Related 相关文章

  1. 1

    使用自定义适配器和视图持有器的Android列表视图

  2. 2

    如何使用Hashmap为自定义列表视图创建自定义适配器

  3. 3

    无法解析适配器中自定义列表视图的布局

  4. 4

    自定义适配器不显示列表视图

  5. 5

    在自定义适配器的列表视图项中加载不同的图像

  6. 6

    使用自定义适配器视图时,如何使列表视图可点击?

  7. 7

    在自定义列表视图适配器中使用多个视图

  8. 8

    自定义列表视图和适配器覆盖getView,更改文本颜色

  9. 9

    滚动列表视图和自定义适配器的问题

  10. 10

    Android Java:用于滚动和过滤问题的列表视图的自定义适配器

  11. 11

    创建适配器时,布局显示不正确

  12. 12

    使用自定义适配器的Listview搜索无法正确显示搜索结果

  13. 13

    如何使用 REST API、自定义列表视图、适配器、行布局在 xamarin android c# 中填充列表视图

  14. 14

    使用外部XML文件进行自定义列表视图适配器?

  15. 15

    我无法使用自定义适配器数据清除列表视图?

  16. 16

    对于使用一个自定义适配器的多个列表视图

  17. 17

    android自定义组视图布局不正确

  18. 18

    使用自定义列表适配器保存和还原ListView

  19. 19

    在Android中重复放大子视图以查看自定义适配器的布局

  20. 20

    如何使用自定义适配器将数组中的值设置为列表视图,并为行赋予不同的颜色

  21. 21

    从自定义适配器获取父布局

  22. 22

    自定义文本视图适配器不适用于列表视图

  23. 23

    在对话框片段和自定义列表视图适配器之间实现接口时出错

  24. 24

    Android - 将搜索栏添加到自定义列表视图和简单适配器

  25. 25

    在ListFragment的适配器显示的列表之前添加自定义布局

  26. 26

    在ListFragment的适配器显示的列表之前添加自定义布局

  27. 27

    将列表视图的数据从Asynctask传递到自定义列表适配器类

  28. 28

    列表视图中的页脚按钮,如何从自定义列表适配器获取价值

  29. 29

    setOnClickListener不使用自定义适配器和自定义ListView触发

热门标签

归档