奇怪的Java String []错误

时间:2013-05-18 14:03:41

标签: java arrays string syntax-error

我有这行代码:

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));
    }

1 个答案:

答案 0 :(得分:6)

下一行代码:

cursor = this.managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, projection, selection, null, null);

需要在方法或构造函数(或某种类型的init块)中。它不能像你现在一样在课堂上闲逛。请注意,根据@MarounMaroun,您有其他代码具有相同的问题 - 例如您的下一个while循环。或者你可以在这一点上声明游标,虽然这可能有风险,因为如果你这样做就不能捕获异常,如果存在这种情况的风险。

考虑通过将所有变量声明放在一起(我通常将它们放在顶部),然后是构造函数,然后是方法,来更好地组织代码。