У меня есть вид списка, который заполняется через записи из базы данных. Теперь мне нужно сделать некоторые записи видимыми, но недоступными для выбора, как я могу это достичь?Как отключить элементы в представлении списка?
вот мой код
public class SomeClass extends ListActivity {
private static List<String> products;
private DataHelper dh;
public void onCreate(Bundle savedInstanceState) {
dh = new DataHelper(this);
products = dh.GetMyProducts(); /* Returns a List<String>*/
super.onCreate(savedInstanceState);
setListAdapter(new ArrayAdapter<String>(this, R.layout.myproducts, products));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), ((TextView) arg1).getText(), Toast.LENGTH_SHORT).show();
}
});
}
}
Файл макета myproducts.xml выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:textSize="16sp">
</TextView>
Будьте осторожны с этим решением. В документации BaseAdapter указано следующее: «Возвращает true, если элемент в указанной позиции не является разделителем». Это означает, что если вы возвращаете false, элемент является элементом разделителя. Некоторые телефоны не могут отображать андроид: разделитель между обычным элементом и элементом разделителя. – Janusz
Это определенно верно, и я столкнулся с этим вопросом раньше; Я либо включил разделитель в макет строки, либо показал/скрыл его в getView(), либо оставил элементы включенными, но проигнорировал клики на них и установил фон, который не имеет нажатого состояния, чтобы они не выглядели кликабельны. –
Отлично, чтобы разместить разделители «Заголовок», чтобы иметь разделы в вашем списке! – htafoya