2012-10-27 105 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 

希望我已經幫助你。