ListView не получает информацию для заполнения - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь запросить в моей базе данных SQLite курсы, которые имеют COURSE_TERM_ID, который соответствует выбранному termId из предыдущего действия.Я передаю termId в CourseActivity через Intent и использую этот идентификатор в массиве selectionArgs String.

Строковый массив selectionArgs используется в качестве параметра в методе getContentResolver.query().

Кажется, запрос возвращает правильные результаты из моей базы данных, и я могу распечатать их на консоли после выполнения запроса.Однако, когда я настроил захват моего ListView и установил адаптер с помощью моего курсора, никакая информация не будет привязана к ListView.Я что-то здесь упускаю?

Это мой onCreate метод для курса деятельности

 public class CourseActivity extends AppCompatActivity implements 
 LoaderManager.LoaderCallbacks<Cursor> {

 private static final int EDITOR_REQUEST_CODE = 1000;
 private courseCursorAdaptor cursorAdapter;
 private String[] selectionArgs = {""};

 @Override
 protected void onCreate(Bundle savedInstanceState){
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_course);
     ListView list = this.findViewById(R.id.courseList);

     long termId;

     Intent intent = getIntent();
     Uri uri = intent.getParcelableExtra(CourseProvider.CONTENT_ITEM_TYPE);
     termId = getIntent().getExtras().getLong("itemId");
     String stringTermId = Long.toString(termId);

     selectionArgs[0] = stringTermId;

     System.out.println("Using the following selection: " + termId);
     Cursor cursor = getContentResolver().query(uri, DBOpenHelper.ALL_COURSE_COLUMNS,DBOpenHelper.COURSE_TERM_ID, selectionArgs, DBOpenHelper.COURSE_ID + " ASC");

     //Verify that the cursor is showing the correct query results
     Integer cursorCount = cursor.getCount();
     System.out.println("Cursor count - " + cursorCount);

     //initialize the cursorAdaptor
     cursorAdapter = new courseCursorAdaptor(this, cursor, 0);
     //set the adapter
     list.setAdapter(cursorAdapter);

     //print each result to verify once again that cursor is still showing correct results
     int index = cursor.getColumnIndex(DBOpenHelper.COURSE_NAME);
     if(cursor != null){
         while(cursor.moveToNext()){
             System.out.println(cursor.getString(index));

         }
     }

     list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
         @Override
         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
             Intent intent = new Intent(CourseActivity.this, editCourseActivity.class);
             Uri uri = Uri.parse(CourseProvider.COURSE_CONTENT_URI + "/" + id);

             intent.putExtra(CourseProvider.CONTENT_ITEM_TYPE, uri);
             startActivityForResult(intent, EDITOR_REQUEST_CODE);
         }
     });

     LoaderManager.getInstance(this).initLoader(0, null, this);

 }

Это мой адаптер курсора

    public class termCursorAdaptor extends CursorAdapter {


    public termCursorAdaptor(Context context, Cursor c, int flags) {
        super(context, c, flags);
    }

    @Override
    public View newView(Context context, Cursor cursor, ViewGroup parent) {

        return LayoutInflater.from(context).inflate(
                R.layout.term_list_item, parent, false
        );
    }

    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        String termText = cursor.getString(
                cursor.getColumnIndex(DBOpenHelper.TERM_TITLE));
        int pos = termText.indexOf(10);
        if(pos != -1){
            termText = termText.substring(0, pos) + "...";
        }
        TextView tv = view.findViewById(R.id.tvTerm);
        tv.setText(termText);

    }


    }

Это мой курсActivity XML

    <?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".CourseActivity">

    <ListView
        android:id="@+id/courseList"
        android:layout_width="417dp"
        android:layout_height="605dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fabAddCourse"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="1100dp"
        android:layout_marginEnd="35dp"
        android:layout_marginRight="35dp"
        android:layout_marginBottom="33dp"
        android:onClick="openEditorForNewCourse"
        android:src="@drawable/ic_action_ic_bell_outline"
        app:backgroundTint="@color/primary"
        app:layout_constraintBottom_toTopOf="@+id/courseList"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:rippleColor="@color/primary_dark" />

</android.support.constraint.ConstraintLayout>

Это мой адаптер курсора XML

    <?xml version="1.0" encoding="utf-8" ?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:padding="4dp">

    <ImageView
        android:id="@+id/imageDocIcon"
        android:layout_width="36dp"
        android:layout_height="36dp"
        android:src="@drawable/ic_format_list_bulleted_black_48dp"/>

    <TextView
        android:id="@+id/tvTerm"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginStart="12dp"
        android:layout_marginLeft="12dp"
        android:layout_marginEnd="1dp"
        android:layout_marginRight="1dp"
        android:layout_toEndOf="@+id/imageDocIcon"
        android:layout_toRightOf="@+id/imageDocIcon"
        android:singleLine="true"
        android:text="Dummy Text"
        android:textColor="@color/term_item_text"
        android:textSize="18sp" />

</RelativeLayout>

В данный момент я не вижу и сообщений об ошибках, а просто пустое действие, когда загружается действие курса.Любая помощь или направление приветствуется

...