我有这行代码:
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};
哪个应该有用,但是eclipse给了我一个错误:“令牌上的语法错误”;“,预期”
以下是我的代码的上半部分:
public class Main extends Activity implements OnClickListener
{
ListView lv;
static final int check = 1111;
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.listView1);
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(this);
}
Cursor cursor;
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};
cursor = this.managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, selection, null, null);
private List<String> songs = new ArrayList<String>();
while(cursor.moveToNext())
{
songs.add(cursor.getString(0) + "||" + cursor.getString(1) + "||" + cursor.getString(2) + "||" + cursor.getString(3) + "||" + cursor.getString(4) + "||" + cursor.getString(5));
}
答案 0 :(得分:6)
下一行代码:
cursor = this.managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, selection, null, null);
需要在方法或构造函数(或某种类型的init块)中。它不能像你现在一样在课堂上闲逛。请注意,根据@MarounMaroun,您有其他代码具有相同的问题 - 例如您的下一个while循环。或者你可以在这一点上声明游标,虽然这可能有风险,因为如果你这样做就不能捕获异常,如果存在这种情况的风险。
考虑通过将所有变量声明放在一起(我通常将它们放在顶部),然后是构造函数,然后是方法,来更好地组织代码。