2013-07-17 113 views
0

我有歌曲列表,並要突出(變化的背景),這首歌是目前playing.It應該能夠當我的歌完成就可以更改背景並進入下一個。當我選擇任何列表視圖項目時,我也希望更改背景。 有人請指導我如何前進與此。 代碼: -更改列表視圖項目背景動態

我implmenting這個代碼,但多個列表項的顏色變化

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

    final View vi=inflater.inflate(layout, null, false); 
    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()==MainActivity.songPosition){ 
     titleS.setBackgroundColor(Color.BLUE); 
    } 

} 
+1

查看是否添加'else'語句一起去了'if'幫助。添加'else {titleS.setBackgroundColor(Color.WHITE); }'。 – Vikram

+0

感謝它現在的工作。 –

回答

0

我建議你有AA字段在適配器當前歌曲指數,取決於索引選擇了一個背景。然後,當歌曲停止播放時,您可能會有某種回調,因此您可以增加此索引並在適配器上調用notifyDataSetChange()來重新繪製視圖。

而最後一件事,當你選擇一個列表項,你應該改變當前歌曲索引到所選項目的索引,也稱notifyDataSetChange()

下面是一些代碼

getView(int position, View convertView, ViewGroup parent) { 
    //initialize view 

    if (position == currentSongPosition) { 
     yourView.setBackground(...); 
    } 

    yourView.setOnClickListener(new OnClickListener() { 
      public void onClick(View view) { 
       currentSongPosition = position; 
       notifyDataSetChange(); 
      } 
    }); 

} 
+0

我應該如何實現適配器?我的意思是根據什麼改變背景? 我不能使用的onClick方法 –

+0

我寫了一些代碼在那裏做。實際上,你可以做到這一點onClick – Desert

+0

因爲我使用CUrsorAdapter所以我應該使用它,而不是在bindView方法? –

相關問題