-4

如第 28 行和第 28 行所示,有两个错误,有人知道为什么我会收到这些错误吗

package com.xcxcxc;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.MediaStore;
import android.provider.UserDictionary;
import android.text.TextUtils;
import android.util.Log;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;


public class UserDict extends Activity {

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

SimpleCursorAdapter adapter;
ListView audiolist = (ListView) findViewById(R.id.audioList);


String[] mProjection =
{
    UserDictionary.Words._ID,    
    UserDictionary.Words.WORD,   
    UserDictionary.Words.LOCALE  
};

String mSelectionClause = null;
String[] mSelectionArgs = {""};
static final String[] DBFIELDS= {UserDictionary.Words.WORD,     UserDictionary.Words.LOCALE};
static final int[] LISTFIELDS = { R.id.dictWord,R.id.locale};

String mSearchString = "m";  //syntax error on token ";" { expected after this token
if (TextUtils.isEmpty(mSearchString)) {
mSelectionClause = null;
mSelectionArgs[0] = "";

} else {
    mSelectionClause = UserDictionary.Words.WORD + " = ?";
    mSelectionArgs[0] = mSearchString;

}   

Cursor mCursor = getContentResolver().query(
    UserDictionary.Words.CONTENT_URI,  
mProjection,                       
mSelectionClause,                  
mSelectionArgs,                    
null);

if (null == mCursor) {
Log.e("Cursor returned null, query could not be performed","");
} else if (mCursor.getCount() < 1) {
Toast.makeText(this, "nowords"+mSearchString+"found",     Toast.LENGTH_LONG).show();
} else {
int[] mWordListItems = { R.id.dictWord, R.id.locale};
String[] mWordListColumns =
{
UserDictionary.Words.WORD,   
UserDictionary.Words.LOCALE  
};

SimpleCursorAdapter mCursorAdapter = new SimpleCursorAdapter(
getApplicationContext(),               
R.layout.row,                   
mCursor,                            
DBFIELDS,                      
LISTFIELDS); 


audiolist.setAdapter(mCursorAdapter);

}   // syntax error insert } to complete class body       
4

4 回答 4

3

紧跟在您显示为带有错误标记的行之后的行是应该在方法内的代码,但不是。我猜你不是打算onCreate在这条线之后关闭:

setContentView(R.layout.audiolistmain);

并且您在此处列出的所有代码都应该是该方法的一部分。只需删除}下一行的右括号,并在文件末尾添加两个右括号,它应该匹配。

于 2012-09-18T01:50:54.203 回答
2

要解决第二个问题,您需要在文件末尾关闭“}”来完成类主体。

于 2012-09-18T01:54:02.067 回答
0

如果您仍然不明白@Xono 所说的话

删除 { 的这个

    package com.xcxcxc;
    import android.app.Activity;
    import android.database.Cursor;
    import android.os.Bundle;
    import android.provider.MediaStore;
    import android.provider.UserDictionary;
    import android.text.TextUtils;
    import android.util.Log;
    import android.widget.ListView;
    import android.widget.SimpleCursorAdapter;
    import android.widget.Toast;


    public class UserDict extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.audiolistmain);
    }   <--------------- THIS ONE
    ^
    |
    |
    |
    |
    |
    |
    |
 THIS ONE

并将其放在最底部....

编辑:

还添加另一个 { 以关闭课程。

于 2012-09-18T02:16:42.703 回答
0
package com.xcxcxc;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.MediaStore;
import android.provider.UserDictionary;
import android.text.TextUtils;
import android.util.Log;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;


public class UserDict extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.audiolistmain);
    // "{" ====>> Removed

    SimpleCursorAdapter adapter;
    ListView audiolist = (ListView) findViewById(R.id.audioList);


    String[] mProjection =
    {
        UserDictionary.Words._ID,    
        UserDictionary.Words.WORD,   
        UserDictionary.Words.LOCALE  
    };

    String mSelectionClause = null;
    String[] mSelectionArgs = {""};
    static final String[] DBFIELDS= {UserDictionary.Words.WORD,     UserDictionary.Words.LOCALE};
    static final int[] LISTFIELDS = { R.id.dictWord,R.id.locale};

    String mSearchString = "m";  //syntax error on token ";" { expected after this token
    if (TextUtils.isEmpty(mSearchString)) {
        mSelectionClause = null;
        mSelectionArgs[0] = "";

    } else {
        mSelectionClause = UserDictionary.Words.WORD + " = ?";
        mSelectionArgs[0] = mSearchString;
    }   

    Cursor mCursor = getContentResolver().query( UserDictionary.Words.CONTENT_URI,  
                mProjection,                       
                mSelectionClause,                  
                mSelectionArgs,                    
                null);

    if (null == mCursor) {
        Log.e("Cursor returned null, query could not be performed","");
    } else if (mCursor.getCount() < 1) {
        Toast.makeText(this, "nowords"+mSearchString+"found",     Toast.LENGTH_LONG).show();
    } else {
        int[] mWordListItems = { R.id.dictWord, R.id.locale};
        String[] mWordListColumns =
        {
            UserDictionary.Words.WORD,   
            UserDictionary.Words.LOCALE  
        };

        SimpleCursorAdapter mCursorAdapter = new SimpleCursorAdapter(
                                        getApplicationContext(),               
                                        R.layout.row,                   
                                        mCursor,                            
                                        DBFIELDS,                      
                                        LISTFIELDS); 


        audiolist.setAdapter(mCursorAdapter);

    } 
}   //===========> "}" added
}   //===========> "}" added 
于 2012-09-18T05:17:52.923 回答