0

2 つのリスト ビューを android の 1 つのビューに結合する方法。両方のリスト ビューに一意の ID があります。first_list ID が存在する場合は、[追加] ボタンが表示されます。助けて。

ありがとう

4

2 に答える 2

1

2 つの ListView を結合する理由 カーソルまたは配列レベルでこれを実行できるのはなぜですか? おそらくこれを行う可能性はありますが、「ダーティコード」に聞こえます。

于 2012-08-21T14:41:42.573 に答える
0

次のクラスは必要なものに対応していますか?

public class DoubleListView extends LinearLayout {

    private Button button;

    public final ListView list1, list2;

    public DoubleListView(Context context) {
        super(context);

        setOrientation(VERTICAL);

        list1 = new ListView(context);
        addView(list1, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1));

        list2 = new ListView(context);
        addView(list2, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1));

        button = new Button(context);
        addView(button, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

        // Initial state
        list2.setVisibility(View.GONE);
        updateContent();
    }

    private void updateContent() {
        if(list2.getVisibility() == View.VISIBLE) {
            button.setText("REMOVE");
            button.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    list2.setVisibility(View.GONE);
                    updateContent();
                }
            });
        }
        else {
            button.setText("ADD");
            button.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    list2.setVisibility(View.VISIBLE);
                    updateContent();
                }
            });
        }
    }

}

次のようなサンプル アクティビティで使用できます。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    DoubleListView dbleListView = new DoubleListView(this);
    dbleListView.list1.setBackgroundColor(Color.RED);
    dbleListView.list2.setBackgroundColor(Color.BLUE);
    setContentView(dbleListView);
}
于 2012-08-21T14:51:51.390 に答える