在我的應用程序中,我有一個ListView
和ArrayAdapter
。當我在ListView
中選擇一個元素時,我可以看到更多的選定元素。android:ListView中的混沌選擇
此外,當我滾動ListView
中的元素(選擇後)時,我的選擇消失,並隨機選擇元素。
適配器代碼:
final ListAdapter adapter = new ArrayAdapter<BinLocationsComponent>(activity, R.layout.simple_list_item_multiple_choice, locationComponents) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = layoutInflater.inflate(layout.simple_test_layout_with_one_text_field, null);
}
return convertView;
}
};
看起來像某些參數進行設置。
你能幫我解決這個問題嗎?
UPD1
final ListAdapter adapter = new ArrayAdapter<BinLocationsComponent>(activity, R.layout.simple_list_item_multiple_choice, locationComponents) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final LocationsViewHolder viewHolder;
if (convertView == null) {
convertView = layoutInflater.inflate(layout.rp_bin_locations_block_element, parent, false);
viewHolder = new LocationsViewHolder();
viewHolder.init(convertView);
convertView.setTag(viewHolder);
} else {
viewHolder = (LocationsViewHolder) convertView.getTag();
}
final BinLocation binLocation = locationComponents.get(position).getBinLocation();
if (binLocation != null) {
viewHolder.provideValues(binLocation);
}
return convertView;
}
class LocationsViewHolder {
TextView stationName;
TextView rackName;
TextView binName;
TextView volume;
NumberPicker numberOfItems;
public void init(View view) {
stationName = (TextView) view.findViewById(id.ro_station_name);
rackName = (TextView) view.findViewById(id.ro_rack_name);
binName = (TextView) view.findViewById(id.ro_bin_name);
volume = (TextView) view.findViewById(id.ro_volume_value);
numberOfItems = (NumberPicker) view.findViewById(id.ro_number_of_items);
}
public void provideValues(BinLocation location) {
stationName.setText(location.getStationName());
rackName.setText(location.getRackName());
binName.setText(location.getBinName());
volume.setText(valueOf(location.getVolume()));
}
}
};
和simple_list_item_multiple_choice它的Android SDK的文件:
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeightSmall"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:gravity="center_vertical"
android:checkMark="?android:attr/listChoiceIndicatorMultiple"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
/>
請發表'simple_list_item_multiple_choice.xml'源代碼以獲得準確答案。 –