настроить просмотр списка не может показать все данные, Android Studio - PullRequest
0 голосов
/ 10 сентября 2018

Я думаю, как показать данные на странице настройки списка. ребята, можете ли вы помочь мне выяснить, где ошибки?

вот назначение

Model txn;
        public SQLiteHelper mSQLiteHelper;
        ListView mListView;
        ArrayList<Model> mList;
        RecordListAdapter mAdapter = null;

это инициализация

 mListView = findViewById(R.id.listView);
        mList = new ArrayList<>();
        mAdapter = new RecordListAdapter(this, R.layout.row, mList);
        mListView.setAdapter(mAdapter);
        mSQLiteHelper = new SQLiteHelper(this);
        mList = new ArrayList<>();

Это моя страница, на которой показаны все данные, я поставил отладчик для отладки. Он может получить все мои данные, которые имеют 15 столбцов, но не могут отображаться на странице просмотра списка. есть ли ошибка в этом коде?

try {
            SQLiteDatabase db = mSQLiteHelper.getReadableDatabase();
            Cursor cursor = db.rawQuery("select * from Table1", null);
            mList.clear();
            while (cursor.moveToNext()) {
                txn = new Model();
                txn.setId(cursor.getInt(cursor.getColumnIndex("id")));
                txn.setName(cursor.getString(cursor.getColumnIndex("name")));
                txn.setAddress(cursor.getString(cursor.getColumnIndex("address")));
                txn.setPhone(cursor.getString(cursor.getColumnIndex("phone")));
                mList.add(new Model());
            }

            mAdapter.notifyDataSetChanged();
            if (mList.size() == 0) {
                Toast.makeText(this, "No record found...", Toast.LENGTH_SHORT).show();
            }

            mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
                @Override
                public boolean onItemLongClick(AdapterView<?> parent, View view, int i, long l) {
                    return false;
                }
            });
        } catch (Exception e) {
            e.printStackTrace();
        }

1 Ответ

0 голосов
/ 10 сентября 2018

Пожалуйста, проверьте ниже код

mListView = findViewById(R.id.listView);

mSQLiteHelper = new SQLiteHelper(this);
mList = new ArrayList<>();

mAdapter = new RecordListAdapter(this, R.layout.row, mList);
mListView.setAdapter(mAdapter);

Код функции привязки данных

try {
        SQLiteDatabase db = mSQLiteHelper.getReadableDatabase();
        Cursor cursor = db.rawQuery("select * from Table1", null);
        mList.clear();
        while (cursor.moveToNext()) {
            txn = new Model();
            txn.setId(cursor.getInt(cursor.getColumnIndex("id")));
            txn.setName(cursor.getString(cursor.getColumnIndex("name")));
            txn.setAddress(cursor.getString(cursor.getColumnIndex("address")));
            txn.setPhone(cursor.getString(cursor.getColumnIndex("phone")));
            mList.add(txn);
        }

        mAdapter.notifyDataSetChanged();
        if (mList.size() == 0) {
            Toast.makeText(this, "No record found...", Toast.LENGTH_SHORT).show();
        }

        mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> parent, View view, int i, long l) {
                return false;
            }
        });
    } catch (Exception e) {
        e.printStackTrace();
    }

и у меня есть еще одно предложение: не добавляйте прослушиватель щелчков в списке внутри функции привязки данных.

...