2013-09-23 3 views
1

Listview de rang 1ListView qui montre plusieurs colonnes d'une rangée au lieu de plusieurs lignes

"colonne 1"

"colonne 2"

"colonne 3"

est-il façon d'afficher plusieurs colonnes sur une ligne. En ce moment je peux énumérer plusieurs rangées dans la vue de liste. Je regarde prefereaceactivity et je veux réaliser quelque chose de semblable à cela. Je veux que chaque colonne soit cliquable.

EDIT: Quelques précisions.

Actuellement, j'ai un listview qui remplit chaque ligne de ma base de données.

ListView

"rang 1"

"ligne 2"

"ligne 3"

etc ...

Lorsque je clique sur un de ces éléments sur la ListView dans, par exemple, "ligne 2" appelle une activité qui répertorie toutes les colonnes de la ligne dans une vue de texte. Ce que je veux accomplir est de lister chaque colonne d'une manière listview. Donc quand on clique sur "row 2", cela devrait m'amener à une vue comme celle-ci.

affiche:

"colonne 1"

"colonne 2"

"colonne 3"

Répondre

1

Eh bien, sur la base de votre EDIT, vous cherchez peut-être un "ExpandableListView"?

+0

Un peu. Lorsque la ligne est cliquée, elle veut ouvrir une nouvelle vue. –

+0

Je pense que je vais essayer ça. –

1

Je ne suis pas sûr de ce que vous essayez d'atteindre, mais vous pouvez utilisez un LinearLayout horizontal comme une ligne dans le LinearLayout vertical que vous avez déjà. Avez-vous besoin que la colonne entière soit cliquable en tant qu'entité unique? Si vous avez seulement besoin d'éléments cliquables alignés dans des colonnes comme une PreferenceActivity, j'utiliserais plutôt un GridLayout.

0

Vous pouvez réaliser quelque chose de similaire en enveloppant tous les éléments de votre rangée dans un LinearLayout, en lui donnant un android:weightSum. Donnez à chaque élément android:layout_weight et android:layout_width="0dp". Il fonctionne bien que n'est pas le plus élégant ..

1

utilisation gridView faire somthing comme ceci:

GridView gridview = (GridView) findViewById(R.id.gridview); 
gridview.setAdapter(new ImageAdapter(this)); // see 

gridview.setOnItemClickListener(new OnItemClickListener() { 
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 

     //here, switch position, set the row & column content 

    } 
}); 

Je pense que cela est la meilleure façon pour vous.

1

Ce que vous devez rechercher est HorizantalListView.

C'est un contrôle personnalisé fait par quelqu'un. C'est tellement populaire.

Tous les développeurs Android l'utilisent.

Vous trouverez un échantillon sur internet.

vous avez parfois besoin de le comprendre. parce qu'à un moment donné, vous devez le modifier.En tant qu'élément, cliquez sur l'écouteur qui doit être traité.

Bonne chance.

0

En supposant que vous voulez faire quelque chose comme ceci:


Listview:

ligne 1

"colonne" "colonne" "colonne"

ligne 2

"colonne" "colonne" "colonne"

ligne 3

« colonne » « colonne » « colonne »


et voulons que chaque colonne à cliquable sans la ligne « absorving » clic dans son ensemble.

Eh bien, vous pouvez utiliser une "disposition de table" qui se comporte mieux pour cela.

Vous pouvez toutefois atteindre encore cela en faisant manuellement sur une vue de la liste comme ceci:

1) Créer un adaptateur qui recrache une méthode mise en ligne (sur getView()) avec trois vues horizontalement (» colonne "" colonne "" colonne ")

2) Assurez-vous de définir chacune des trois vues avec clickable =" true "sur la ligne XML, et enregistrez un écouteur pour chacune des vues avec setOnClickListener.

3) Désactivez leur disposition parente cliquez sur votre fichier XML. 4) N'enregistrez pas un onItemClickListener pour l'objet de vue de liste (ou enregistrez un onItemClickListener qui retourne juste false, en effleurant la vue de dessous), et utilisez l'adaptateur créé dans votre liste. Vous devriez obtenir l'effet désiré.

Questions connexes