0
사용자 정의 목록 항목과 함께 사용하려는 listview가 있습니다.adapter.notifyDataSetChanged()에 응답하는 방법
목록 항목 (list_item.xml) :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="start time"
android:id="@+id/startTime"
android:layout_margin="10dp"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="finish time"
android:id="@+id/finishTime"
android:layout_margin="10dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/payment"
android:layout_margin="10dp"/>
</LinearLayout>
및 자바 클래스 : 응용 프로그램이 실행 시작할 때
이private ListView listView;
private ArrayAdapter adapter;
private ArrayList shifts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
listView = (ListView)findViewById(R.id.listview);
listView.setOnItemClickListener(this);
adapter = new ArrayAdapter(this, R.layout.list_item, shifts);
내 질문은, 어떻게 내가 새 목록 항목을 추가 할 수있다 (ArrayList)로 변경하고 어댑터에서 notifyDataSetChanged() 메서드를 재정 의하여 listview를 "새로 고침"한 다음 원하는 매개 변수가있는 목록 항목의 편집 텍스트를 설정합니다.
나는 분명히 충분히 맑기를 바란다. 고마워!
당신 돈 클릭 된 어댑터 뷰 AdapterView 내보기 notifyDataSetChanged()를 전혀 오버라이드 (override) 할 필요가 없기 때문에, 어댑터는 모든 것을 처리 할 것입니다. 어댑터의 데이터를 갱신 해, notifyDataSetChanged를 호출하면됩니다. – FWeigl
좋아요, 그래서 xml 항목을 기반으로 새 항목을 만들 수 있습니까? –
레이아웃을 사용자 지정하려면 사용자 지정 어댑터가 필요합니다. ArrayAdapter는 표준 텍스트 기반 목록 항목을 빠르게 작성하는 유틸리티입니다. BaseAdapter를 확장 한 클래스를 직접 만들고 거기에서 이동할 수 있습니다. – RobCo