大家都有一个可以在sd卡上保存音频的应用程序。我创建了一个listview,它从sdcard中检索文件名。我正在尝试设置一个监听器,所以当单击文件名时,我可以启动另一个播放该文件的意图。当我尝试设置监听器并传入一个新的OnItemClickListener()时,eclipse是红色的下划线。我知道我必须实现onItemclick(),这是我认为应该去的地方。任何想法?
感谢
代码:
package com.tecmark;
import java.io.File;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
public class SdGetList extends Activity {
private ListView lv1;
private String[] lv_arr;
private ArrayList<String> arr;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.listlayout);
arr = new ArrayList<String>();
File sdCardRoot = Environment.getExternalStorageDirectory();
Log.i("root on sd =", ""+ sdCardRoot.getPath());
for (File f : sdCardRoot.listFiles()) {
if (f.isFile()){
String name = f.getName();
arr.add(name);
Log.i("arr is empty?******", ""+arr.isEmpty());
}
else {
Log.i("file", " no file");
}
Log.i("arr******", ""+arr.size());
}
lv_arr = new String[arr.size()];
for(int i=0 ; i<arr.size();i++) {
lv_arr[i] = arr.get(i);
}
lv1=(ListView)findViewById(R.id.ListView01);
// By using setAdpater method in listview we an add string array in list.
lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1 , lv_arr));
lv1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
} );
}
}
答案 0 :(得分:14)
list.setOnItemClickListener( new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
Intent i = new Intent(ClassName.this,CourtDetailActivity.class);
startActivity(i);
});
}
这是代码正常工作我认为你不导入打击包
import android.widget.AdapterView.OnItemClickListener;
将此行放入应用程序的导入部分 我希望这是有帮助的;
答案 1 :(得分:2)
检查java文件中的类导入。在Eclipse中:Ctrl + Shift + O