ExpandableListView,单击时更改组视图

时间:2013-02-04 20:51:11

标签: android widget

我正在使用ExpandableListView小部件。单击组视图时,除了显示子视图外,我还想对组视图进行更改。我已经在适配器的getGroupView()方法中向组视图添加了一个OnClickListener,但是当单击其中一个时,会对组视图进行更改,但子视图不会显示 - 就像OnClickListener覆盖了显示一样儿童观点。我可以添加一个调用OnClickListener来显示孩子吗?欢迎任何其他想法...

编辑:这是getGroupView()方法的代码,添加了OnClickListener。我不认为任何其他代码是相关的,因为它在OnClickListener被注释掉时工作正常

        @Override
    public View getGroupView(int position, boolean arg1, View convertView,
            ViewGroup arg3) {
        if (convertView == null){
        convertView = getLayoutInflater().inflate(R.layout.questionbox, null);
        }

        TextView summary = (TextView)convertView.findViewById(R.id.questionHl);
        final TextView asker = (TextView)convertView.findViewById(R.id.asker);
        TextView numviews = (TextView)convertView.findViewById(R.id.numViews);
        TextView numAnswers = (TextView)convertView.findViewById(R.id.numAnswers);
        final TextView fullText = (TextView)convertView.findViewById(R.id.fullText);

        summary.setText(q.get(position).summary);
        asker.setText("by " + q.get(position).author);
        numviews.setText(Integer.toString(q.get(position).views));
        numAnswers.setText(Integer.toString(q.get(position).numAnswers));   
        fullText.setText(q.get(position).fullText);
        convertView.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                if (fullText.getVisibility() == 8){
                    fullText.setVisibility(1);;
                }
                else if (fullText.getVisibility() == 0){
                    fullText.setVisibility(8);
                }
            }
            });
        return convertView;
    }

1 个答案:

答案 0 :(得分:6)

我认为这是因为你的onclicklistener在返回false时返回true。 True表示您已完全处理事件,因此它不会转发回可扩展列表视图。但我在这里盲目猜测,因为你没有显示任何代码:D

编辑:有些onclick方法会返回一个布尔值,有些则不会,所以我可能完全错了。你能告诉我们你的代码吗?