Ciao ragazzi,
all'interno di un ListView devo far comparire (per ogni riga) varie occorrenze di un Layout custom con possibilità si scrollare la singola riga lateralmente...
Al che ho pensato di utilizzare un ListView al quale faccio l'inflate del layout HorizontalScrollview che contiene altre view ecc ecc...vi scrivo un po di codice:
Codice Layout Principale contenente il ListView sul quale faccio l'inflating
x1<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
2android:orientation="vertical" android:layout_width="fill_parent"
3android:layout_height="fill_parent" android:background="@color/white">
4<TextView android:id="@+id/output" android:layout_width="wrap_content"
5android:layout_height="wrap_content" android:textColor="@color/black"/>
6<ListView android:layout_width="fill_parent"
7android:layout_height="fill_parent" android:id="@+id/result_search_list"
8android:background="@color/white">
9
10</ListView>
11</LinearLayout>
Codice layout custom:
171<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
2android:layout_width="fill_parent" android:layout_height="fill_parent"
3android:textColor="@color/black" android:id="@+id/horizontal_scrollview_custom">
4<RelativeLayout android:orientation="horizontal"
5android:id="@+id/linearLayout" android:layout_width="fill_parent"
6android:layout_height="fill_parent">
7<ImageView android:id="@+id/thumb" android:layout_width="wrap_content"
8android:layout_height="wrap_content" android:layout_alignParentLeft="true"></ImageView>
9
10<Button android:id="@+id/read_article_button"
11android:layout_width="wrap_content" android:layout_toRightOf="@+id/watch_video_button"
12android:layout_height="wrap_content" android:text="Leggi l'articolo"
13android:layout_below="@+id/hour"></Button>
14</RelativeLayout>
15
16
17</HorizontalScrollView>
Vorrei ora riempire il relative layout in maniera programmarica dato che non so a prescindere quanti elementi dovrò visualizzare per riga... (uno di fianco all'altro scrollabili lateralmente...) quindi:
331TextView output = (TextView) findViewById(R.id.output);
2output.setText("Risultati per: " + intentUri.getPath().substring(1)
3+ " N°:6");
4
5ListView listView = (ListView) findViewById(R.id.result_search_list);
6ArrayAdapter<ResultPreview> arrayAdapter = new ArrayAdapter<ResultPreview>(
7this, R.layout.custom_row_result_search, R.id.thumb,
8createItems()) {
9
10
11public View getView(int position, View ConvertView, ViewGroup parent) {
12ResultPreview item = getItem(position);
13LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
14
15
16View rowView = inflater.inflate(
17R.layout.custom_row_result_search, parent);
18for (int i = 0; i < 4; i++) {
19
20ImageView thumb = new ImageView(this.getContext());
21
22
23thumb.setImageResource(R.drawable.sample_2);
24
25//aggiungo la view al al ViewGroup root passato al metodo getView di ArrayAdapter
26
27parent.addView(thumb);
28}
29return rowView;
30}
31};
32listView.setAdapter(arrayAdapter);
33}
Mi da una UnsupportedOperationException : addView(View,LayoutParams) is not supported in AdapterView...
Come posso fare???
Il sunto è che devo avere una Lista, ogni riga della lista deve avere un layout custom tipo è composta da una immagine e un bottone (per esempio), e , per ogni riga devo avere più elementi custom scrollabili lateralmente!
Sono arrivato a fare un elemento custom per riga facendo l'inflate e utilizzando le View dichiarate nell'xml e funziona, ma cercando di aggiungere all'interno del metodo getView in maniera programmatica le varie View all'interno delle righe mi sono inchiodato...!!! Help