代码之家  ›  专栏  ›  技术社区  ›  Jeeten Parmar

更改android中ListView的Imageview onItemClickListener的图像

  •  2
  • Jeeten Parmar  · 技术社区  · 11 年前

    我正在使用自定义 ListView 显示图像和文本,使用 Cursor 现在 onItemClickListener() ,我想更改的图像 ImageView 我还想更改textColor TextView 。我想禁用该项,使其无法单击哪个用户 Click 。我试过好几种方法,但都没有奏效。
    如何做到这一点?

    XML代码:

            <ImageView
                android:id="@+id/icon"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:contentDescription="@string/queimg"
                android:src="@drawable/ic_answer" />
    
            <TextView
                android:id="@+id/option"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:paddingTop="14dp"
                android:layout_toRightOf="@+id/icon"
                android:text="hello" />
    

    Java代码:

            final List<String> lstOption = new ArrayList<String>();
    
            ArrayList<Map<String, String>> arrlist = new ArrayList<Map<String, String>>();
    
            Map<String, String> m = null;
            if (option != null) {
                if (option.moveToFirst()) {
                    do {
                        lstOption.add(option.getString(option
                                .getColumnIndex("Option")));
    
                        m = new HashMap<String, String>();
                        m.put("option",
                                option.getString(option.getColumnIndex("Option")));
    
                        arrlist.add(m);
                    } while (option.moveToNext());
                }
            }
    
            SimpleAdapter adapter = new SimpleAdapter(this, arrlist,
                    R.layout.topicwisequestion, new String[] { "option" },
                    new int[] { R.id.option });
    
    
    lvTWOptions.setAdapter(adapter);
    lvTWOptions.setOnItemClickListener(new OnItemClickListener() {
    
                public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
    }
    });
    
    2 回复  |  直到 11 年前
        1
  •  1
  •   Triode    11 年前
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        selection[position] = true;
        ((ImageView)view.findViewById(R.id.icon)).setImageResource(R.drawable.yourImageResourceId);
        ((TextView)view.findViewById(R.id.option)).setTextColor(Color.BLUE);
    }
    

    尝试此代码,希望它会有所帮助。

    final boolean[] selection = new boolean[arrlist.length];
    SimpleAdapter adapter = new SimpleAdapter(this, arrlist, R.layout.topicwisequestion, new String[] { "option" },new int[] { R.id.option }){
        @Override
        public boolean isEnabled(int position) {
            return !(selection[position]);
        }
    }
    
        2
  •  0
  •   AlexMasca    11 年前

    实现这一点的最简单方法是扩展 BaseAdaptor 类并使用列表中的自定义项。