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를 "새로 고침"한 다음 원하는 매개 변수가있는 목록 항목의 편집 텍스트를 설정합니다.

나는 분명히 충분히 맑기를 바란다. 고마워!

+1

당신 돈 클릭 된 어댑터 뷰 AdapterView 내보기 notifyDataSetChanged()를 전혀 오버라이드 (override) 할 필요가 없기 때문에, 어댑터는 모든 것을 처리 할 것입니다. 어댑터의 데이터를 갱신 해, notifyDataSetChanged를 호출하면됩니다. – FWeigl

+0

좋아요, 그래서 xml 항목을 기반으로 새 항목을 만들 수 있습니까? –

+0

레이아웃을 사용자 지정하려면 사용자 지정 어댑터가 필요합니다. ArrayAdapter는 표준 텍스트 기반 목록 항목을 빠르게 작성하는 유틸리티입니다. BaseAdapter를 확장 한 클래스를 직접 만들고 거기에서 이동할 수 있습니다. – RobCo

답변

0
void onItemClick (AdapterView<?> parent, 
       View view, 
       int position, 
       long id) 

매개 변수
보기 : (이것은 뷰가 어댑터에 의해 제공됩니다)

그래서 당신은보기에서 ExidText (findViewById를를) 찾을 수