0

アクティビティに ListView があり、ユーザーが ListView の項目のチェックボックスをオン/オフにしたときに、DeleteButton の状態 (VISIBLE - GONE) を変更する必要があります。

私はこのようなことをしてみました:

holder.cb_row_adminNotesCheck
                .setOnCheckedChangeListener(new OnCheckedChangeListener() {

                    @Override
                    public void onCheckedChanged(CompoundButton buttonView,
                            boolean isChecked) {
                        int getPosition = (Integer) buttonView.getTag();
                        mNotesList.get(getPosition).setSelected(isChecked);
                        if (isChecked) {
                            map.put(getPosition, true);
                        } else {
                            map.remove(getPosition);
                        }
                        setDeleteButtonVisibility();

                    }
                });
..
private void setDeleteButtonVisibility() {
    LayoutInflater inflater = (LayoutInflater) activity
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    Button deleteButton = (Button) inflater.inflate(R.layout.adminnotes,
            null).findViewById(R.id.ib_adminnotesDeleteMore);

    deleteButton.setVisibility(statesMap.size() > 0 ? View.VISIBLE : View.GONE);
}

私のDeleteButtonでは何も起こりません。アプリをデバッグしましたが、すべて問題ないように見えますが、DeleteButton の「認識」は次のとおりです。

activity.getLayoutInflater().inflate(R.layout.adminnotes,
            null).findViewById(R.id.ib_adminnotesDeleteMore);

VISIBLE / GONEに設定します。

PS。deleteButton は行ボタンではなく、リストビュー全体を含むメイン アクティビティからのものであることに注意してください。

貴重な回答に感謝します!:)

4

1 に答える 1

0

うまくいかなかったのかもしれませんが、これを行う唯一の方法は、DeleteButton 変数を public および static (Activity 内) にし、onCheckedChange メソッドで Adapter にアクセスすることでした。

于 2013-03-19T07:25:47.413 に答える