如何从列表中获取所选项目查看

问题描述:

我将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(); 

    } 
} 

尝试使用

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

它完美的作品,谢谢。 –