2012-04-02 6 views
0

Je voulais générer une vue de liste en utilisant le code ci-dessous. Mais après l'exécution de ce code l'écran affiche juste un écran vide et le texte « bonjour » qui est là dans la mise en page principaleListView n'est pas rempli

package com.android.test1; 

import android.app.ListActivity; 
import android.os.Bundle; 
import android.widget.AdapterView; 
import android.widget.Toast; 

import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Toast; 
import android.widget.AdapterView.OnItemSelectedListener; 
import android.widget.AdapterView; 

public class HelloListView extends ListActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     setContentView(R.layout.main); 

     String a[] = new String[]{"a", "b", "c", "d"}; 
     setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, a)); 

      ListView lv = getListView(); 

      lv.setTextFilterEnabled(true); 

    } 
} 

et le code de mise en page principale est comme indiqué ci-dessous

<?xml version="1.0" encoding="utf-8"?> 
<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:text="hello" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 
    <ListView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/list_view" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#FFFFFFFF"> 
</ListView> 

</LinearLayout> 

Répondre

2

Votre ListView en XML devrait avoir cette android:id="@android:id/list"

et supprimer cet attribut d'arrière-plan ..

+0

et shud j'utilise cet id n'importe où? – Housefly

+0

Non ... Il devrait être dans ListView de votre ** main.xml ** – ngesh

+0

il n'a pas wrk :( – Housefly

0

Vous configurez l'adaptateur à l'activité en cours, mais il est vue est pas Li stView mais un LinearLayout. Essayez ceci pour régler l'adaptateur sur la vue correcte.

String a[] = new String[]{"a", "b", "c", "d"}; 
ListView listView = (ListView) findViewById(R.id.list_view); 
listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, a)); 
+1

Lorsque nous utilisons 'ListActivity', nous pouvons utiliser' setListAdapter (adaptateur); ', il définit automatiquement l'adaptateur à' Listview' –

+0

Oui, je vois maintenant.Conformément à la documentation de Google [ici] (http : // de veloper.android.com/reference/android/app/ListActivity.html), votre réponse devrait être correcte. –

0

Dans votre code Tout commentaire la ligne ci-dessous

setContentView (R.layout.main);

Dans ce cas, utilisez le lien ci-dessous pour utiliser un adaptateur personnalisé.

LINK

+0

@Agarwal .. Il va lui montrer seulement une liste ... La plupart du temps vous avez besoin d'autre chose aussi ... – ngesh

+0

et quoi d'autre vous voulez –

0

Archie.bpgc voir ce tutoriel http://www.bogotobogo.com/Android/android6ListViewSpinnerGridViewGallery.php#ListView

si vous prolongez ListActivity vous n'ajoutez pas

setContentView (R.layout.main);

et se référer comme

ListView listView = (ListView) findViewById(R.id.list_view); 

et si vous le faites comme ça

public class Activity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     setContentView(R.layout.main); 
     ListView listView = (ListView) findViewById(R.id.list_view); 
     String a[] = new String[]{"a", "b", "c", "d"}; 
     listView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, 
       android.R.id.text1 , 

       a)); 

//   ListView lv = getListView(); 

     listView.setTextFilterEnabled(true); 

    } 
} 

vous avez défini l'arrière-plan de la liste

android:background="#FFFFFFFF" 

Par défaut, la couleur du texte de la liste est blanc et vous avez donné un fond blanc à la liste de sorte que les éléments n'apparaissent pas

Questions connexes