2011-07-23 2 views
0

Je suis un nouveau développeur android. J'ai créer une application de quiz où j'ai besoin d'afficher les questions en mode liste en série. ma toute question et options sont des images. comment puis-je définir les images en mode liste. je veux mettre seulement l'image dans la vue de liste pas n'importe quel texte. Aidez-moi, s'il vous plaît.Problème pour définir des images en mode liste application android

Répondre

2

Créer un listview dans votre principal fichier xml comme ceci:

<?xml version="1.0" encoding="UTF-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/masterLayout" 
android:orientation="vertical" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
    <ListView 
    android:id="@+id/list" 
    android:cacheColorHint="#00000000" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"/> 
</LinearLayout> 

Ensuite, créez un autre fichier xml appelé child_layout:

<?xml version="1.0" encoding="UTF-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content"> 
    <ImageView android:id="@+id/image" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
</RelativeLayout> 

Ensuite, dans votre classe d'activité initialiser votre listview:

ListView listView1 = (ListView)findViewById(R.id.list); 

Créez une classe qui étend le baseadapter et modifiez toutes les méthodes nécessaires comme vous devez (créer le constructeur qui prend une liste de drawables en tant qu'argument et créer une variable globale qui est définie à la liste fournie). Ensuite, effectuez les opérations suivantes dans votre classe d'activité:

ArrayList<Drawable> images = new ArrayList<Drawable>(); 
// add to the list here 
CustomListAdapter adapter = new CustomListAdapter(images); 
listView1.setAdapter(adapter); 

Est-ce que dans votre fonction getView() dans votre classe customlistadapter:

public View getView(int position, View convertView, ViewGroup parent) 
{ 
    Drawable image = images.get(position); 
    if (convertView == null) 
    { 
     LayoutInflater infalInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = infalInflater.inflate(R.layout.child_layout, null); 
    } 
    ImageView imageView = (ImageView)convertView.findViewById(R.id.image); 
    imageView.setBackgroundDrawable(image); 

    return convertView; 
} 

ListView article cliquez auditeur:

listView1.setOnItemClickListener(new ListView.OnItemClickListener() 
{ 
    public void onItemClick(AdapterView<?> listView, View itemView, int position, long itemId) 
    { 
     String message = "example text: " + position; 
     Toast.makeText(MyActivity.this, message, Toast.LENGTH_SHORT).show(); 
    } 
}); 
+0

Salut. Où puis-je obtenir la variable 'contexte'? –

+0

Comme la liste des images, vous devez également passer le contexte de votre activité en tant qu'argument au constructeur de l'adaptateur de liste. Ensuite, dans l'adaptateur de liste, créez une variable contextuelle globale et définissez-la sur celle qui vous a été fournie dans le constructeur. –

+0

Je l'ai fait. Demandé juste pour la confirmation. :) –

0

Vous devez créer un ListAdapter personnalisé. Un exemple est donné dans API samples. Ajoutez simplement un ImageView comme la disposition de l'adaptateur personnalisé et vous devriez y aller. Cherchez plus pour les exemples.

0

prendre un fichier XML de mise en page principale dans lequel vous devez donner le. quelque chose comme ça

 <List 
     android:width="wrap_content" 
     android:height="wrap_content" 
     android:id="@+id/list" 
    /> 

et prendre une autre mise en page fichier xml avec

<ImageView 
    android:width="wrap_content" 
    android:height="wrap_content"/> 

Dans l'adaptateur gonflent ce fichier XML qui contient ImageView. afin que vous puissiez obtenir l'image dans la liste

Questions connexes