2012-02-18 20 views
2

これはListViewの各行のための私のレイアウトです:ListViewの変更行

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/llRow" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" > 
<LinearLayout 
     android:id="@+id/llClosed" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="horizontal" > 

Stuff Inside 

</LinearLayout> 

<LinearLayout 
     android:id="@+id/llOpen" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="horizontal" > 

Stuff Inside 

</LinearLayout> 
</LinearLayout> 

私はそれがようVisibleにllOpenGoneにをllClosedと設定ListView項目をクリックしたときにアイデアがあります後でいくつかのアニメーションで私は拡大して見ることができます。

protected void onListItemClick(ListView l, View v, int position, long id) { 
     super.onListItemClick(l, v, position, id); 
       View open = v.findViewById(R.id.llOpen); 
       View close = v.findViewById(R.id.llClosed); 
       close.setVisibility(View.GONE); 
     open.setVisibility(View.VISIBLE); 
} 

問題は、最初の行をクリックすると、最初の行だけでなく、2行または3行も変更されるという問題です。何が原因でしょうか?

解決済み:私がllOpen.setVisibility(View.GONE)をリストアダプターで実行すると、私の問題は解決します。うまく

答えて

0

、一つの問題は、あなたがIDを持っていレイアウトでandroid:id="@+id/llClosed"

すべての要素がユニークなものを持っている必要があり、同じIDを持つ2つのリニアレイアウトを持っています。お試しくださいandroid:id="@+id/llClosed1"android:id="@+id/llClosed2"

申し訳ありませんが、あなたが達成しようとしていることは実際には分かりませんが、expandablelistviewクラスを試してみてください。チェックアウト:

http://techdroid.kbeanie.com/2010/09/expandablelistview-on-android.html

http://about-android.blogspot.com/2010/04/steps-to-implement-expandablelistview.html

+0

間違いとしてコピーするとき。線形レイアウトには異なるIDがあります。アイデアは、次に、llClosedが消える行をクリックすると、llOpenが表示されます。拡大する行のように。 –