Android studio 中的 OnCreate 预期分号

OnCreate expected semicolon in Android studio

    public class MainActivity extends AppCompatActivity {
        private TaskDBHelper helper;
        private ListAdapter listAdapter;
        @Override
        public void onCreate(Bundle savedInstanceState) {

            private void updateUI(){
                helper = new TaskDBHelper(MainActivity.this);
                SQLiteDatabase sqlDB = helper.getReadableDatabase();
                Cursor cursor = sqlDB.query(TaskContract.TABLE,
                        new String[]{TaskContract.Columns._ID, TaskContract.Columns.TASK},
                        null, null, null, null, null);

                listAdapter = new SimpleCursorAdapter(
                        this,
                        R.layout.task_view,
                        cursor,
                        new String[]{TaskContract.Columns.TASK},
                        new int[]{R.id.taskTextView},
                        0
                );
                ListView listView = (ListView) findViewById(R.id.list);
                listView.setAdapter(listAdapter);
            }
        }
}

我在 private void updateUI() 上不断收到红色标记,其中一条错误消息显示明确预期(分号)。

试试这个:

 public class MainActivity extends AppCompatActivity {
        private TaskDBHelper helper;
        private ListAdapter listAdapter;
        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                updateUI();
                ListView listView = (ListView) findViewById(R.id.list);
                listView.setAdapter(listAdapter);
            }

            private void updateUI(){
                helper = new TaskDBHelper(MainActivity.this);
                SQLiteDatabase sqlDB = helper.getReadableDatabase();
                Cursor cursor = sqlDB.query(TaskContract.TABLE,
                        new String[]{TaskContract.Columns._ID, TaskContract.Columns.TASK},
                        null, null, null, null, null);

                listAdapter = new SimpleCursorAdapter(
                        this,
                        R.layout.task_view,
                        cursor,
                        new String[]{TaskContract.Columns.TASK},
                        new int[]{R.id.taskTextView},
                        0
                );
        }
}

在 Java 中,您不能在另一个方法的范围内声明一个方法。您只能在 class 范围内声明方法。因此,您声明方法 updateUI() 的方式无效,应移至 class 范围。