0

次のコードは を作成し、inを使用してArrayAdapterそれぞれの状態を変更します。CheckedTextViewListView.setItemChecked()onResume()

これで問題ありません。

一部を無効にする (グレー表示にする) 方法はありCheckedTextViewsますか?

を使用してみましたがadapter.getView(position, null, listView)、これはオブジェクトを返しますがCheckedTextView、に設定してsetclickable(false)も何もしません。テキストを変更して状態を変更しようとしましたが、何もしません。

どうすればこれを達成できますか?

以下は正常に動作するコードです。

adapter = new ArrayAdapter<String>(this, 
                android.R.layout.simple_list_item_multiple_choice, 
                getResources().getStringArray(R.array.mode_declarations_array));

    listView.setAdapter(adapter);       

    listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

    String learningSettings = settings.getString(Constants.LEARNING_SETTINGS, null);

    int count = adapter.getCount();

    if (learningSettings != null ) {

        String[] values = learningSettings.split(",");

        for (int i = 0; i< values.length; i++) {

            boolean val = Boolean.parseBoolean(values[i]);

            listView.setItemChecked(i, val);

        }

    }else {
        for (int i = 0; i<count; ++i) {
            listView.setItemChecked(i, true);
        }
    }
4

1 に答える 1

1

独自のカスタム アダプターを作成し、関数をオーバーライドしisEnabledます。

class MyAdapter extends ArrayAdapter<String> {

    public boolean areAllItemsEnabled() {
        return false;
    }

    public boolean isEnabled(int position) {
        // return false if position == position you want to disable
    }
}
于 2011-03-27T01:48:20.390 に答える