0

hereのコードを使用すると問題に直面しました。電話が横向きの場合、すべてのリスト項目が表示されるわけではありません (5 つのうち 3 つしか表示されないと仮定します)。4 番目と 5 番目の要素まで下にスクロールすると、2 つの 1 番目の要素 (つまり、1、2、3、1、1) が再び表示されます。いくつかのスクロール操作の後、より興味深いミックス (2、3、1、2、1 など) が得られます。

コードはリンクにあるとおりです。私が変更したものはすべて問題を解決しませんでした。どうしたの?

前もって感謝します

2Rajath 簡単な例をありがとうございますが、私の場合には適用できません。ご覧ください

@Override
    public View getView(final int position, View convertView, ViewGroup parent){
        View row;
        if(convertView == null){            
            row = mInflater.inflate(R.layout.custom_list_preference_row, parent, false);
        } else {
            row = convertView;
        }
        CustomHolder holder = new CustomHolder(row, position);
        row.setTag(holder);
        return row;
    }

CustomHolder オブジェクトが作成されると、setId() メソッドで NullPointer 例外がスローされます。

class CustomHolder
    {
        private RadioButton rButton = null;

        CustomHolder(View row, int position){    
            rButton = (RadioButton)row.findViewById(R.id.custom_list_view_row_radio_button);
            rButton.setId(position);

            rButtonList.add(rButton);
    }
}

このコードを機能させる方法を教えてください。

4

1 に答える 1

0

[更新に基づいて編集]

設定されている ID が他の ID と競合している可能性があります。これが役立つかどうかを確認してください - Android: View.setID(int id) programmatically - how to avoid ID conflicts? .

于 2011-03-25T12:03:03.860 に答える