안드로이드 ListView + Adapter 사용 질문

조회수 819회

리스트뷰를 사용하는데, 어디에 문제가 있는지, 아이템들이 리스트뷰에 나타나지를 않습니다. 정확한 문제는 모르겠지만, 뷰가 화면에 안뜨는것같아요 코드확인좀부탁드립니다. 먼저 리스트뷰를 안에 사용할 아이템 레이아웃입니다.

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/list_item_root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="10dp"
android:paddingEnd="10dp"
xmlns:app="http://schemas.android.com/apk/res-auto">

<TextView
    android:id="@+id/list_item_dot"
    android:textSize="15sp"
    android:text=" + "
    android:layout_width="wrap_content"
    android:layout_height="15dp"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toStartOf="@id/list_item_title"
    app:layout_constraintTop_toTopOf="parent"/>
<TextView
    android:id="@+id/list_item_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="15sp"
    app:layout_constraintStart_toEndOf="@id/list_item_dot"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toTopOf="parent"/>

<TextView
    android:id="@+id/list_item_starttime"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="10sp"
    app:layout_constraintTop_toBottomOf="@id/list_item_title"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"/>

<TextView
    android:id="@+id/list_item_endtime"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textSize="10sp"
    app:layout_constraintTop_toBottomOf="@id/list_item_title"
    app:layout_constraintStart_toEndOf="@id/list_item_starttime"
    app:layout_constraintBottom_toBottomOf="parent"/>

다음은 메인액티비티에서의 선언부입니다.

adapter = new ListViewAdapter(pList);
listView.setAdapter(adapter);
pList.addAll(dbHelper.selectBySelectedDay(sDate));
adapter.notifyDataSetChanged();

필요하다면 ListViewAdapter 의 코드입니다.

public class ListViewAdapter extends BaseAdapter {
    LayoutInflater inflater = null;
    private ArrayList<MyEvent> events = null;
    private int nListCnt = 0;

    public ListViewAdapter (ArrayList<MyEvent> _events) {
        events = _events;
        nListCnt = events.size();
    }

    @Override    
    public int getCount() {
        return nListCnt;
    }

    @Override
    public Object getItem(int position) {
    return events.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        if (convertView == null) {
            final Context context = parent.getContext();
            if (inflater == null) {
                inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            }
            convertView = inflater.inflate(R.layout.listview_item, parent, false);
        }

        TextView tvTitle = convertView.findViewById(R.id.list_item_title);
        TextView tvStartTime = convertView.findViewById(R.id.list_item_starttime);
        TextView tvEndTime = convertView.findViewById(R.id.list_item_endtime);

        tvTitle.setText(events.get(position).getTitle());
            tvStartTime.setText(events.get(position).getStartTimeText());
            tvEndTime.setText(events.get(position).getEndTimeText());
        }
        return convertView;
    }
}
  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)