2017-10-17 101 views
0

我將LinearLayout與listView(音樂列表)和另一個帶有兩個textView標題和藝術家 的音樂文件的LinearLayout相結合,列表工作正常。我的問題是,我應該如何定義songPicked()android:onClick="songPicked")方法來獲得所選音樂的播放。如何從列表中獲取所選項目查看

謝謝。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" 
android:background="#333838" 
tools:context=".MainActivity" 
> 

<ListView 
    android:id="@+id/SongListView" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 
</ListView> 

</LinearLayout> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" 
android:padding="5dp" 
android:id="@+id/colLayout" 
android:clickable="true" 
android:onClick="songPicked"> 

<TextView 
    android:id="@+id/song_title" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textColor="@color/fileTitle" 
    android:textSize="20sp" 
    android:textStyle="bold" /> 

<TextView 
    android:id="@+id/song_artist" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textColor="@color/fileDec" 
    android:textSize="18sp" /> 

public class MainActivity extends AppCompatActivity { 

    private ArrayList<SoundInfo> SoundArray; 
    private ListView SongListView; 
    TextView totalSongs; 
    String TAG = "path"; 
    int fileCounter; 
    Uri filePathUri; 
    public Cursor musicCursor; 
    LinearLayout colLayout; 


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


     SongListView = (ListView) findViewById(R.id.SongListView); 
     totalSongs=(TextView)findViewById(R.id.totalSongs); 

     SoundArray = new ArrayList<SoundInfo>(); 
     colLayout=(LinearLayout)findViewById(R.id.colLayout); 

     SoundAdapter songAdt = new SoundAdapter(this, SoundArray); 
     SongListView.setAdapter(songAdt); 

     RetrieveSoundInfo(); 
    } 


    public void songPicked(View view){ 

     Toast.makeText(getApplicationContext(), "play", Toast.LENGTH_LONG).show(); 

    } 
} 

回答

1

嘗試使用

listView.setOnItemClickListener(new OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 

     songPicked(position); 

    } 

}); 

和變化:

public void songPicked(int position){ 

    Toast.makeText(getApplicationContext(), "clicked on "+position, Toast.LENGTH_LONG).show(); 

} 
+0

它完美的作品,謝謝。 –

相關問題