android - ¿Cómo deshabilitar elementos en una vista de lista?
android-widget listviewitem (1)
Tengo una vista de lista que se rellena a través de registros de la base de datos. Ahora tengo que hacer algunos registros visibles pero no disponibles para la selección, ¿cómo puedo lograr eso?
aquí está mi código
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();
}
});
}
}
El archivo de diseño myproducts.xml es el siguiente:
<?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>
Cree su propia subclase de ArrayAdapter que tiene AreAllItemsEnabled() devuelve false y defina isEnabled (int position) para devolver true / false para un elemento determinado en su conjunto de datos.