如何在列表视图中的项目单击中设置imageview.setvisibility(view.gone)

时间:2014-08-26 18:13:11

标签: android listview

当我在listview中单击一行时,我有一个在listview中显示分类簿的项目,

它的不同书打开。并在每本书的下一页显示imageview。但是可以给我代码执行此操作。我有示例适配器和notifyDataSetChanged dos' nt work.can告诉我在单击列的每一行时imageview.setvisibility(view.gone)的代码。 请给我代码

重要代码:

runOnUiThread(new Runnable() {
            public void run() {

                ListView lv = (ListView) findViewById(R.id.list_view);
                /**
                 * Updating parsed JSON data into ListView
                 * */
                ListAdapter adapter = new SimpleAdapter(Category.this,
                        categoryList, R.layout.category_item,
                        new String[] { TAG_CATEGORY_NAME },
                        new int[] { R.id.category_name});

                lv.setAdapter(adapter);


                lv.setOnItemClickListener(new OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> arg0, View arg1,
                            int arg2, long arg3) {



                        Intent intent = new Intent();
                        switch (arg2) {
                        case 0:

                            intent.setClass(arg1.getContext(),
                                    Computer.class);


                            break;
                        case 1:
                            intent.setClass(arg1.getContext(),
                                    Management.class);
                            break;
                        case 2:intent.setClass(arg1.getContext(),
                                Literature.class);
                        break;
                        case 3:intent.setClass(arg1.getContext(),
                                Health.class);
                        break;

1 个答案:

答案 0 :(得分:0)

您的问题一般问我可以帮助您正确但我会为您提供一个可能对您有帮助的自定义适配器:

ListView lv = (ListView) findViewById(R.id.list_view);
            /**
             * Updating parsed JSON data into ListView
             * */
            CustomListItems adapter = new CustomListItems(Category.this,
                    yourArrayOfString);

            lv.setAdapter(adapter);


            lv.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1,
                        int arg2, long arg3) {


                }
            });  

自定义Adapter.class

public class CustomListItems extends ArrayAdapter<String> {
private Context context;
private String[] items;

public CustomListItems(Context context, String[] items,
        ) {
    super(context, R.layout.list_items_display);
    this.context = context;

    this.items = items;
}


@Override
public int getCount() {
    // TODO Auto-generated method stub
    return items.length;
}

@Override
public View getView(int position, View view, ViewGroup parent) {
    LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rowView = inflater
            .inflate(R.layout.list_items_display, null, true);
    ImageView computerBook = (ImageView) rowView.findViewById(R.id.list_image_book);
    final ImageView shopIcon = (ImageView) rowView.findViewById(R.id.list_image_shop);
    shopIcon.setVisibility(View.GONE);
    computerBook.setOnClickListener(new onClickListener(){

       @override 
       public void onClick(View view){
             shopIcon.setVisibility(View.VISIBLE);
       }
    });

    shopIcon.setOnClickListener(new onClickListener(){

       @override 
       public void onClick(View view){
             //do shoping
       }
    });
    return rowView;

}

}