2012-10-27 106 views
1

我有一个ListViewonClicklListener更改查看清单项目点击

ListView有一排Layout的说/res/listitem_a

现在后的任何列表项的onClickevent,我想改变的 布局只列表项说/res/listitem_b..

上的任何帮助,我要我继续。

+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调用改变特定行。希望这个帮助!

+0

那么你在哪里实现我的第二个布局,必须在onClick后显示? – svm

+0

你的第二个布局将只有一个单一生的权利?您可以通过上述方法管理您的布局。你能指定你实施了什么吗?所以我们很容易给你提供建议。 –

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 

希望我已经帮助你。