无法在自定义Listview中单击整个行 [英] Unable to click entire row in custom Listview

查看:104
本文介绍了无法在自定义Listview中单击整个行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在创建一个自定义ListView,其中有两个相同的行,其中一个与Spinner不同.问题是带有Spinner的行不可单击.我只能单击Spinner.这是我的适配器:

I am creating a custom ListView in which I have two identical rows and one is different with a Spinner in it. The problem is that the row with Spinner is not clickable. I can only click on Spinner. Here is my adapter:

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        int theType = getItemViewType(position);
        if (convertView == null) {
            holder = new ViewHolder();
            if (theType == 0) {
                convertView = inflat.inflate(R.layout.row_item0, parent, false);
                holder.textView = (TextView) convertView
                        .findViewById(R.id.text);
                holder.sp = (Spinner) convertView.findViewById(R.id.sp);

            } else if (theType == 1) {
                convertView = inflat.inflate(R.layout.row_item1, null);
                holder.textView = (TextView) convertView
                        .findViewById(R.id.text);
            }

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        String it = items.get(position);
        if (it != null) {
            if (theType == 0) {
                holder.textView.setText(it);
                holder.sp.setAdapter(new CategorySpinnerAdapter(
                        getApplicationContext(),
                        R.layout.item_spinner_category, Data.lose_weight_type));
                holder.sp
                        .setOnItemSelectedListener(new OnItemSelectedListener() {

                            @Override
                            public void onItemSelected(AdapterView<?> parent,
                                    View view, int position, long id) {
                                Data.user
                                        .setLose_weight_type(Data.lose_weight_type
                                                .get(position));
                                Data.user.setGoal(Data.goals.get(0));
                            }

                            @Override
                            public void onNothingSelected(AdapterView<?> arg0) {
                                // TODO Auto-generated method stub

                            }
                        });
            } else if (theType == 1) {
                holder.textView.setText(it);
            }

        }
        return convertView;
    }

推荐答案

如果适配器中包含任何可单击的窗口小部件,例如图像按钮,微调器,按钮等,则列表视图项不可单击.

If any clickable widget like Image Button, spinner , button etc are included in adapter then list view item is not clickable.

您可以做一件事情,可以使适配器类本身中的转换视图上的单击侦听器成为可能.这可能不是准确的方法,但是在这种情况下可以很好地工作

You can do one things you can make click listener on convert view in adapter class itself. This may not be accurate method, but this works perfectly in this kind of situation

这篇关于无法在自定义Listview中单击整个行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆