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

I keep getting a red mark on private void updateUI() where an error message that displays express expected (semicolon).

Synetrix
  • 37
  • 4

2 Answers2

2

Try this:

 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
                );
        }
}
Zaki
  • 5,540
  • 7
  • 54
  • 91
  • It says that overriding method should call super.oncreate – Synetrix Mar 01 '16 at 14:11
  • updated it. add this line : super.onCreate(savedInstanceState); btw you need to set your your layout too after onCreate: setContentView(R.layout.YOUR_ACTIVITY); – Zaki Mar 01 '16 at 14:12
2

In Java you can't declare a method inside scope of another method. You can only declare methods inside scope of a class. So your way of declaring the method updateUI() is invalid and should be moved to the class scope.

frogatto
  • 28,539
  • 11
  • 83
  • 129