Добавление данных в текстовое представление во фрагменте с помощью sqliteDB - PullRequest
1 голос
/ 06 мая 2020

Привет, я хочу добавить данные в свой txtview во фрагменте из моей базы данных sqllite. Пользователь вводит значение в db, которое работает, но когда я пытаюсь преобразовать его в своем фрагменте, это не сработает.

Функция DB для получения данных:

 public ArrayList<Double> getLastSquatEntry(){
    ArrayList<Double> data = new ArrayList<>();
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.query(TABLE_SQUAT, new String[]{COL2},null, null, null, null, null);
    Double add = null;
    while(cursor.moveToNext()){
        if(cursor.moveToLast()){
            add=cursor.getDouble(0);
            data.add(add);
        }
    }
    cursor.close();
    return data;
}

Я заставил ее работать внутри моей WorkoutActivity, но при этом не используются фрагменты. Вот как я конвертирую ее внутри нее в методе onCreate

   //getting last entry from squat
    ArrayList<Double> dataSquat = mDatabaseHelper.getLastSquatEntry();
    double []arrSquat =  new double [dataSquat.size()];
    for(int j=0; j<dataSquat.size();j++) {
        double convertSquat = dataSquat.get(j);
        arrSquat[j] = convertSquat;
    }

   //converting to double from Double
    for(double d : arrSquat){
        Log.d(TAG, ""+d);
        textViewSquat.setText("Sets left: "+Integer.toString(setsLeftSquat)+" Reps : "+Integer.toString(repsLeft) + " "+d*0.8+"KG ");

    }

В моем DemoAdapter onCreateView я попытался реализовать то же, что и выше, но пока не работал, у меня есть только это, которое возвращает пустой массив в текстовом представлении

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    DatabaseHelper db = new DatabaseHelper(getActivity());
    // Inflate the layout for this fragment
    View view = inflater.inflate(R.layout.fragment_demo, container, false);
    txtView = view.findViewById(R.id.txt_display);

    txtView.setText(db.getLastSquatEntry().toString());


    return view;
}

1 Ответ

0 голосов
/ 06 мая 2020

Исправлено nvm

Решение

  public double getLastSquatEntryDouble(){
    double data = 0;
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.query(TABLE_SQUAT, new String[]{COL2},null, null, null, null, null);
    Double add = null;
    while(cursor.moveToNext()){
        if(cursor.moveToLast()){

            data =cursor.getDouble(0);
        }
    }
    cursor.close();
    return data;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...