3

親グループにボタンがあり、押すとユーザーが子グループにアイテムを追加できる、展開可能なリストビューを作成しようとしています。ただし、ボタンを追加するときに問題が発生し、親のドロップダウンサブリスト機能が機能しなくなります。(理想的には、ボタンをクリックすると要素が追加され、他の場所をクリックするとメニューがドロップダウンします)展開可能なリストテンプレートをコピーパスタして、他のことを試す前に機能させました。

<!--?xml version="1.0" encoding="utf-8"?-->
<LinearLayout android:id="@+id/groupname" 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="40dip">
     <TextView android:id="@+id/tvGroupName" 
        android:layout_width="225dp" 
        android:layout_height="40dip" 
        android:textSize="16sp" 
        android:textStyle="bold" 
        android:paddingLeft="30dip" 
        android:gravity="center_vertical">
     </TextView>

     <Button
     android:id="@+id/addPhrase"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="+" />

</LinearLayout>

これが親グループのxmlです(私が変更したものはすべて)。

エキスパンダーとクローラーが設定されるonCreateメソッド。(グループと子供は事前に入力されています)

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Drawable d = getResources().getDrawable(R.drawable.group_indicator);

    expList = getExpandableListView();
    metrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);
    width = metrics.widthPixels;
    //this code for adjusting the group indicator into right side of the view
    expList.setIndicatorBounds(width - GetDipsFromPixel(50), width -   GetDipsFromPixel(10));
    expList.setGroupIndicator(d);
    expList.setAdapter(new ExpAdapter(this));

expList.setOnGroupExpandListener(new OnGroupExpandListener()
{
@Override
public void onGroupExpand(int groupPosition) 
{
 Log.e("onGroupExpand", "OK");
}
});

expList.setOnGroupCollapseListener(new OnGroupCollapseListener()
{
@Override
public void onGroupCollapse(int groupPosition) 
{
 Log.e("onGroupCollapse", "OK");
}
});

expList.setOnChildClickListener(new OnChildClickListener()
{
@Override
public boolean onChildClick(ExpandableListView parent, View v,
  int groupPosition, int childPosition, long id) {
 Log.e("OnChildClickListener", "OK");
 return false;
}
});
}

前もって感謝します。

4

1 に答える 1