Je conçois une application simple à partir de tutoriels que j'ai vus, et j'essaye d'afficher simplement deux vues de texte dans chaque rangée d'une liste, un nom et un prix. Cela a fonctionné et j'ai pu sélectionner la ligne et cela activerait une intention. Cependant, j'ai ensuite changé mon code xml pour que la listview soit placée dans un linearLayout afin que je puisse avoir un en-tête en haut de l'écran. Maintenant, quand je clique sur l'une des lignes, elles sont mises en surbrillance, mais rien d'autre ne se passe. J'ai déjà essayé de rendre les textviews à clickable = false dans le xml mais toujours pas de chance. J'espère juste manquer quelque chose de simple dans la méthode onCreate. `ViewMenuListing public class étend ListActivity {ListView dans LinearLayout ne réagit plus à OnclickListener
public static final String ROW_ID = "row_id"; // Intent extra key
private ListView contactListView; // the ListActivity's ListView
private CursorAdapter contactAdapter; // adapter for ListView
private String tableName;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
contactListView = getListView(); // get the built-in ListView
contactListView.setOnItemClickListener(viewContactListener);
setContentView(R.layout.viewmenu);
//Get table name of menu clicked.
Bundle extras = getIntent().getExtras();
tableName = extras.getString("table");
// map each contact's name to a TextView in the ListView layout
String[] from = new String[] { "name", "price" };
int[] to = new int[] { R.id.itemTextView, R.id.priceTextView };
//int[] to = new int[] { R.id.itemTextView};
contactAdapter = new SimpleCursorAdapter(
ViewMenuListing.this, R.layout.menu_list_item, null, from, to);
setListAdapter(contactAdapter); // set contactView's adapter
}`
La seule chose que j'ai changé dans ce code est que je l'setContentView (R.layout.viewmenu) maintenant, quand je na pas avant et la liste serait juste le point de vue du contenu.
Voici mon fichier ViewMenu:
`
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello" />
<ListView
android:id="@+id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>`
et mon menu_list_item.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/itemTextView"
android:padding="8dp"
android:clickable = "false"
android:textSize="20sp" android:textColor="@android:color/white"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical">
</TextView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/priceTextView"
android:clickable = "false"
android:textColor="@android:color/white"/>
</LinearLayout>
Merci pour votre aide!
Donc, fondamentalement, lorsque vous supprimez LinearLayout parent (sans rien modifier d'autre) cela fonctionne? Aussi pourquoi utilisez-vous une ListActivity lorsque vous définissez un ListView distinct – Soham
oui, quand je commente le setContentView cela fonctionne. Et honnêtement, je suivais un tutoriel. Je suppose que c'était une mauvaise chose à cela! –