如何解决 "Expression expected" 和 "cannot infer argument" 错误?

How to solve "Expression expected" and "cannot infer argument" errors?

谁能帮我解决下面代码中的 "Expression expected" 和 "cannot infer argument" 错误? "Expression expected" 错误出现在行 public void viewData () { 中。虽然 "cannot infer argument" 错误出现在行 adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, listItem);

public class profile extends Fragment {
DatabaseHelper dbHelper;
ArrayList<String> listItem;
ArrayAdapter adapter;
ListView userlist;


@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.activity_profile, container, false);
    dbHelper = new DatabaseHelper(getActivity());
    userlist = (ListView) v.findViewById(R.id.user_list);
    listItem = new ArrayList<>();
    dbHelper.viewData();


    public void viewData () {
        Cursor cursor = dbHelper.viewData();

        if (cursor.getCount() == 0) {
            Toast.makeText(getActivity(), "No Data Show!", Toast.LENGTH_LONG).show();
        } else {
            while (cursor.moveToNext()) {
                listItem.add(cursor.getString(6));
                listItem.add(cursor.getString(0));
                listItem.add(cursor.getString(1));
                listItem.add(cursor.getString(2));
                listItem.add(cursor.getString(3));
                listItem.add(cursor.getString(4));
                listItem.add(cursor.getString(5));

            }
            adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, listItem);
            userlist.setAdapter(adapter);
        }
    }
}

这是我在 DatabaseHelper.java 中添加的方法,用于显示存储在 SQlite 数据库中的数据。

public Cursor viewData(){
    SQLiteDatabase db = this.getReadableDatabase();
    String query = "Select * from "+TABLE_NAME;
    Cursor cursor = db.rawQuery(query,null);

    return cursor;
}

一个方法不能包含在另一个方法中。但是,您可以自己声明 ViewData 方法,然后在需要时从 onCreateView 方法调用它。