将光标移动到bindView中的选定项目位置

时间:2013-07-20 08:31:57

标签: android listview view cursor simplecursoradapter

目前在从列表中选择项目时,我必须将所选项目移出视图以使光标移动到其位置。我已尝试使用newView和网上提供的所有教程但仍无法解决问题。我使用的是自定义的SimpleCursorAdapter。

适配器: -

public class Custom_Adapter extends SimpleCursorAdapter {


 private Context mContext;
private Context appContext;
private int layout;
private Cursor cr;
private final LayoutInflater inflater;

public Custom_Adapter(Context context,int layout, Cursor c,String[] from,int[] to) {
    super(context,layout,c,from,to);
    this.layout=layout;
    this.mContext = context;
    this.inflater=LayoutInflater.from(context);
    this.cr=c;
}

@Override
public void bindView(View view, Context context, Cursor cursor) {
    // TODO Auto-generated method stub
    super.bindView(view, context, cursor);


    TextView titleS=(TextView)view.findViewById(R.id.TitleSong);
    TextView artistS=(TextView)view.findViewById(R.id.Artist);
    int Title_index;
    int Artist_index;



        Title_index=cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME);
        Artist_index=cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST);
        titleS.setText(cursor.getString(Title_index));
        artistS.setText(cursor.getString(Artist_index));


     if(cursor.getPosition()==AllSongs.songPosition){
        if(AllSongs.isSongPaused!=true){
                         //change text view background color
        }
        else{
                           Do nothing
        }

     }
     else{
                     //Do nothing
     }

}

@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
    // TODO Auto-generated method stub
    return inflater.inflate(R.layout.music_items, parent, false);
}


}

All-Songs课程: -

public class AllSongs extends ListActivity {




@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.allsongs);

    String sortOrder = MediaStore.Audio.Media.TITLE + " ASC"; //----->Use for all songs


    lv=getListView();

    String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";

     String[] projection = {
                MediaStore.Audio.Media._ID,
                MediaStore.Audio.Media.ARTIST,
                MediaStore.Audio.Media.TITLE,
                MediaStore.Audio.Media.DATA,
                MediaStore.Audio.Media.DISPLAY_NAME,
                MediaStore.Audio.Media.DURATION,

        };
        //query 

        musiccursor = this.managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,projection,selection,null,sortOrder);
        music_column_index = musiccursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);

        count = musiccursor.getCount();
        int a[]= new int[]{R.id.TitleSong,R.id.Artist};


       Custom_Adapter adapter=new Custom_Adapter(this, R.layout.music_items, musiccursor, new String[]{MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.ARTIST},a);



        lv.setAdapter(adapter); 

}

@Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        // TODO Auto-generated method stub
    }
 }

0 个答案:

没有答案