0

I have a mutlicolumn list in which I also want one of the columns to include a drop down spinner.

My main.xml is: -

<!-- main.xml -->
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/SCHEDULE" android:layout_width="wrap_content" android:layout_height="wrap_content">
</ListView>

My row xml is

<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:paddingTop="4dip"
     android:paddingBottom="6dip"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:orientation="horizontal">

     <TextView android:id="@+id/LEVEL_CELL"
         android:layout_width="50dip"
         android:layout_height="wrap_content"/>    

     <TextView android:id="@+id/ACTION_CELL"
         android:layout_width="50dip"
         android:layout_height="wrap_content"/>


<Spinner
    android:id="@+id/fromTables"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />   

</LinearLayout>

Here is my logic: - super.onCreate(savedInstanceState); setContentView(R.layout.row);

    fromTablesSpinner = (Spinner) findViewById(R.id.fromTables);

    setContentView(R.layout.main);

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

    ArrayList<String> tables = new ArrayList<String>();

    tables.add("MARA");
    tables.add("MARC");
    tables.add("MARD");

    ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
    HashMap<String, String> map = new HashMap<String, String>();
    map.put("level", "1");
    map.put("action", "INNER JOIN");
    map.put("tables", "MARA");
    map.put("tables", "MARC");
    mylist.add(map);
    map = new HashMap<String, String>();
    map.put("level", "2");
    map.put("action", "OUTER JOIN");
    map.put("tables", "MARA");
    map.put("tables", "MARC");
    mylist.add(map);

    SimpleAdapter mSchedule = new SimpleAdapter(this, mylist, R.layout.row,
            new String[] { "level", "action" }, new int[] {
                    R.id.LEVEL_CELL, R.id.ACTION_CELL });

    list.setAdapter(mSchedule);
}

The use of SimpleAdapter does not allow me to bind to a spinner view.

Any help is much appreciated.

Thanks

Martin

Martin Shinks
  • 115
  • 2
  • 6
  • 16

1 Answers1

0

You are trying two complicated things at once. Follow these steps:

1) Learn to build a custom adapter which shows more than one type of views in a single list. This will help you to show a spinner in the list.

Links : http://www.ezzylearning.com/tutorial.aspx?tid=1763429 Android ListView with different layouts for each row

2) Learn to handle different view and listeners.

Links: Listview with TextView and Button. RowId of the clicked button (btnButtonOFF.setOnClickListener(new ItemClickListener(cur.getInt(idRow)));)

3) Use Multiple ListViews like you are using.

Community
  • 1
  • 1
Pinser
  • 1,898
  • 3
  • 29
  • 43