디비에서 목록을 호출해서 클릭가능한 목록을 textview 위에 구성한다음에

클릭하면 핸들러가 실행되게끔 하고 싶은데 에러가 나네요 ㅎㅎ

한번 봐주시면 감사하겠습니다~~~

package org.example.map4;
import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.AdapterView;
import java.util.ArrayList;
import java.util.Date;


import android.content.SharedPreferences;
import android.database.Cursor;

public class tracklist extends Activity {
 
   private ArrayList<String> trackListArray;        // tracklist declare
   private ListView myListView;            //list view declare
   ArrayAdapter<String> myAdapterInstance;        //array adapter declare
   tracklistdb TrackListdb;              //DB declare
   
   private Cursor PositionCursor;           // db Cursur declare
   
   @Override
   public void onCreate(Bundle icicle) {
     super.onCreate(icicle);
     // Inflate your view
     setContentView(R.layout.tracklist);       

     // Get references to UI widgets
     myListView = (ListView)findViewById(R.id.myListView);
    
     TrackListdb = new tracklistdb(this);
      // Open or create the database
      TrackListdb.open();
    
      PositionCursor = TrackListdb.getall();
        
         startManagingCursor(PositionCursor);
        
         System.out.println("Num of row(tracklist) :"+ PositionCursor.getCount());
        
         //ositionCursor.close();

     trackListArray = new ArrayList<String>();
    
     //mItemList = new ArrayList<OverlayItem>();
        int size = PositionCursor.getCount();
       
        if (PositionCursor.moveToFirst())
         do {
          
           String name = PositionCursor.getString(TrackListdb.TRACK_NAME_COLUMN);
           trackListArray.add(name);
         } while(PositionCursor.moveToNext());
       
     int resID = R.layout.todolist_item;
    
     myAdapterInstance = new ArrayAdapter<String> (this, resID,  trackListArray);
    
     myListView.setAdapter(myAdapterInstance);
    registerForContextMenu(myListView);
    
     }
}

DB class >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>..
package org.example.map4;

import java.util.Date;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.util.Log;

/** Database Adapter for persisting Todo Items */
public class tracklistdb {
 
  private static final String DATABASE_NAME = "tracklist.db";
  private static final String DATABASE_TABLE = "tracklist";
  private static final int DATABASE_VERSION = 1;

  public static final String KEY_PN = "pn";
  public static final String TRACK_NAME = "track_name";
 
  public static final int PN_COLUMN = 0;
  public static final int TRACK_NAME_COLUMN = 1;
 
  private SQLiteDatabase db;
  private final Context context;
  private tracklistdbOpenHelper dbHelper;
 
  /** SQL Statement to create a new database */
  private static final String DATABASE_CREATE = "create table " +
    DATABASE_TABLE + " (" + KEY_PN + " integer primary key autoincrement, "
    + TRACK_NAME +" text); ";
 
  public tracklistdb(Context _context) {
    context = _context;
    dbHelper = new tracklistdbOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION);
  }

  /** Open the database */
  public void open() throws SQLiteException { 
   try {
    db = dbHelper.getWritableDatabase();
   }
   catch (SQLiteException ex) {
    db = dbHelper.getReadableDatabase();
   }  
 }
 
  /** Close the database */
  public void close() {
   db.close();
 }
  public Cursor getall() {
   return db.query(DATABASE_TABLE, new String[] { KEY_PN, TRACK_NAME}, null, null, null, null, null);
 }

  public Cursor getTrack(String trackName) {
      String where = TRACK_NAME + "= '" + trackName+ "'";
      return db.query(DATABASE_TABLE, new String[] { KEY_PN, TRACK_NAME}, where, null, null, null, null);
  }

  public void delete() {
   System.out.println("deleteTable");
   db.execSQL("DELETE FROM" + DATABASE_TABLE);
  // db.delete(DATABASE_TABLE,null,null);
  }
 
  public void removeall() {
   db.delete(DATABASE_TABLE,null,null);
  }
 
 
  /** Insert a new task */
 
  public long insertTrackName(String trackname) {
    // Create a new row of values to insert.
    ContentValues newPositionValues = new ContentValues();
      // Assign values for each row.
    newPositionValues.put(TRACK_NAME, trackname);
    return db.insert(DATABASE_TABLE, null, newPositionValues);
  }

  /** Remove a task based on its index */

  public void removeTask(long _rowIndex) {
     db.delete(DATABASE_TABLE, KEY_PN + "=" + _rowIndex, null);
    
     return ;
  }

 /** Static Helper class for creating, upgrading, and opening
  * the database.
  */
  private static class tracklistdbOpenHelper extends SQLiteOpenHelper {

   public tracklistdbOpenHelper(Context context, String name,
   CursorFactory factory, int version) {
  super(context, name, factory, version);
  // TODO Auto-generated constructor stub
 }
  @Override
   public void onCreate(SQLiteDatabase _db) {
     _db.execSQL(DATABASE_CREATE);
     System.out.println("db_created>>>>>>>>>>>>>>>>");
   }

   @Override
   public void onUpgrade(SQLiteDatabase _db, int _oldVersion, int _newVersion) {
     Log.w("POSITIONDBAdapter", "Upgrading from version " +
                            _oldVersion + " to " +
                            _newVersion + ", which will destroy all old data");

     // Drop the old table.
     _db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
     // Create a new one.
     onCreate(_db);
   }
 }

}

Error >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.

11-03 00:15:44.925: ERROR/ArrayAdapter(2816): You must supply a resource ID for a TextView
11-03 00:15:44.925: DEBUG/AndroidRuntime(2816): Shutting down VM
11-03 00:15:44.925: WARN/dalvikvm(2816): threadid=3: thread exiting with uncaught exception (group=0x4000fe70)
11-03 00:15:44.935: ERROR/AndroidRuntime(2816): Uncaught handler: thread main exiting due to uncaught exception
11-03 00:15:44.955: ERROR/AndroidRuntime(2816): java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:347)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.widget.AbsListView.obtainView(AbsListView.java:1269)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.widget.ListView.measureHeightOfChildren(ListView.java:1117)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.widget.ListView.onMeasure(ListView.java:1030)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.view.View.measure(View.java:7115)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:2875)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:888)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:350)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:278)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.view.View.measure(View.java:7115)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:2875)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.view.View.measure(View.java:7115)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.widget.LinearLayout.measureVertical(LinearLayout.java:464)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.widget.LinearLayout.onMeasure(LinearLayout.java:278)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.view.View.measure(View.java:7115)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:2875)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.view.View.measure(View.java:7115)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.view.ViewRoot.performTraversals(ViewRoot.java:698)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1482)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.os.Handler.dispatchMessage(Handler.java:99)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.os.Looper.loop(Looper.java:123)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.app.ActivityThread.main(ActivityThread.java:3948)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at java.lang.reflect.Method.invokeNative(Native Method)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at java.lang.reflect.Method.invoke(Method.java:521)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at dalvik.system.NativeStart.main(Native Method)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816): Caused by: java.lang.ClassCastException: android.widget.RelativeLayout
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:340)
11-03 00:15:44.955: ERROR/AndroidRuntime(2816):     ... 29 more