更改列表项目上的视图单击

时间:2012-10-27 11:56:06

标签: android list android-listview android-view

我有ListView onClicklListener

ListViewLayout个行/res/listitem_a

现在在任何列表项的onClickevent之后,我想更改布局 只有那个列举项目来说/res/listitem_b..

关于如何进行的任何帮助。

2 个答案:

答案 0 :(得分:0)

使用BaseAdapter并在getView调用中进行修改。

public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;

        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.custom_layout, null);
            // Creates a ViewHolder and store references to the two children views
            // we want to bind data to.
            holder = new ViewHolder();
            holder.text = (TextView) convertView.findViewById(R.id.text);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        // Change text size
        holder.text.setTextAppearance(context,R.style.customStyle);

        return convertView;
    }

    static class ViewHolder {
        TextView text;
    }

您可以在getView调用中使用位置变量来更改特定行。希望这有帮助!!!

答案 1 :(得分:0)

您可以使用ViewFlipper作为行的布局。使用ViewFlipper,您可以根据需要指定任意数量的布局,并在发生某些事件时将其翻转(如点击事件)。 Here是关于ViewFlipper的一个很好的教程。

此外,您应该实现自定义适配器,扩展BaseAdapter并覆盖getView方法。

@Override
public View getView(int position, View view, ViewGroup parent) {
    if (view == null) {
        LayoutInflater inflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = inflater.inflate(R.layout.your_row_layout, null);  //this will inflate the layout into each row
    }

    //from here on, assign the information to display to the layout widgets

希望我帮助过你。