1

I have list that retrive a form my sql with (course id- course name).

I use a hash her for the list, I create an adapter which give me the list and I set it to spinner. However there is a problem in log cat that said:

Ferran Buireu
  • 28,630
  • 6
  • 39
  • 67
user1698448
  • 71
  • 1
  • 2
  • 6

2 Answers2

4

as Very well Explain by Luksprog :

The ArrayAdapter requires the resource ID to be a TextView XML exception means you don't supply what the ArrayAdapter expects. When you use this constructor:

new ArrayAdapter<String>(this, R.layout.a_layout_file, this.file)

R.Layout.a_layout_file must be an xml layout where the first element must be a TextView, something like this:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    //other attributes 
/>

If you want your list row layout to be something a little different then a simple TextView element use this constructor:

new ArrayAdapter<String>(this, R.layout.a_layout_file, 
   R.id.the_id_of_a_textview_from_the_layout, this.file)

where you supply the id of a layout that can contain various views, but also must contain a TextView with and id(third parameter) that you pass to your ArrayAdapter so it can know where to put the Strings

Bhavesh Patadiya
  • 25,740
  • 15
  • 81
  • 107
3

If you check http://developer.android.com/reference/android/widget/ArrayAdapter.html#ArrayAdapter(android.content.Context, int, T[]), you will find that the array adapter is expecting that the second parameter is a resource id of a text view not a layout..

initialize your adapter using:

new ArrayAdapter(MainActivity.this, android.R.layout.simple_spinner_item, coursesList);
Nermeen
  • 15,883
  • 5
  • 59
  • 72