2014-01-18 3 views
1

정보를 ListView에 동적으로 추가하려고합니다. 내가 추가하는 정보는 "장치 이름"(주 항목)과 "MAC 주소"(하위 항목)로 구성됩니다. 온라인에서 예를 들면 다음과 같습니다. 참고 : 항목 1을 장치 1의 이름으로, 하위 항목 1을 장치 1의 MAC 주소로 바꾸고 싶습니다. 장치가 검색 될 때 목록이 채워지기 때문에이 작업을 동적으로 수행해야합니다 (MUST).동적으로 하위 항목을 Android의 ListView에 추가합니다.

Valid XHTML. 이것이 반복로 표시되기 전에

, 나는 다음과 같은 질문을 살펴 보았다 그리고 그들은 나에게 도움이되지 않은 : Adding ListView Sub Item Text in AndroidHow to add subitems in a ListView, Adding Items and Subitems to a ListView

나는이 질문을 읽어 통해 올 한 결론이다 I 맞춤 ArrayAdapter을 구현하고 getView() 메소드를 재정의해야합니다. 나는 거기에 두 개의 텍스트 뷰와 사용자 정의 레이아웃을 만들었습니다

cyan_list.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

<TextView 
    android:id="@+id/main_item" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:textColor="@color/cyan"/> 

<TextView 
    android:id="@+id/sub_item" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:textAppearance="?android:attr/textAppearanceLarge" 
    android:textColor="@color/dark_cyan"/> 

</LinearLayout> 

그때 내 활동 클래스의 사용자 정의 ArrayAdapter와를 만들려고하지만, 내가 무엇에 관해서는 분실하고 내 public View getView(final int position, View convertView, ViewGroup parent) 방법을 넣으십시오. 또한, 내가하려고하는 모든 경우 textview 하위 항목을 추가하는 것입니다 필요한 사용자 지정 ArrayAdapter 만드는 중입니까?

+0

해결 방법을 찾으셨습니까? 가능한 한 동일한 코드를 업로드하십시오 : –

답변

2

대답을 만드는 방법을 단계별로 설명 생각 귀하의 질문에 : 아니오, 당신이 원하는 경우 사용자 정의 ArrayAdapter을 만들 필요가 없습니다. 항목을 추가하십시오. 레이아웃을 사용자 정의한 경우 표시하는 항목을 너무 많이 제어 할 수 있으므로 레이아웃을 만드는 것이 좋습니다. ArrayAdapter을 만들 때 코드를 추가하지 않았지만, 귀하의 경우에는 this 생성자를 사용합니다. 중요한 부분은 세 번째 매개 변수입니다. 작업에서 ArrayAdapter에 추가 할 초기 항목과 함께 ArrayList을 저장해야하며 새 항목을 추가하려면 ArrayAdapter에 추가하고 notifyDataSetChanged() 귀하의 어댑터에. 단순히 그렇게하면 항목이 레이아웃에 추가되어 표시됩니다. 자신의 ArrayAdapter에 대해 GetView 메서드를 재정의해야하는 경우, 나는이 모든 것을 이해하는 데 도움이되는 link을 권장합니다.

+0

도움을 주셔서 감사합니다. 응답! –

+0

도움이되기를 기쁘게 생각합니다. 가장 도움이 된 답을 선택했으면이를 수락하는 것을 잊지 마십시오. 그러면 다른 사용자가 가장 도움이 된 내용을 알 수 있습니다. – nKn

1

는 당신이 그 튜토리얼처럼 구글의 일부 목록보기 예만을 찾고 있습니까 :

http://www.vogella.com/tutorials/AndroidListView/article.html

http://www.mkyong.com/android/android-listview-example/

나는 그들이 목록 어댑터

+0

맞춤 어댑터 외에도 하위 항목을 추가 할 방법이 없습니까? 그것은 일식 미리보기에서 "부 항목"을 볼 수 있기 때문에 이상하게 보입니다. 그래서 내가 추가 할 필요가없는 맞춤형 어댑터 방법이 있다고 생각했습니다. ( –

1

당신은 당신의 어댑터로 getter 메소드를 추가 할 필요가

YourAdapter ...{ 

List<Device> items = new ArrayList<Device>; 

public List<Device> getItems(){ 
return items; 
} 

} 

은 다음

...{ 
//for 1s item 
Device item = getItems().get(0); 
item.setTitle(macAdress) 

} 

을 필요로하는 항목을 변경하고

... 
yourListView.getAdapter().notifyDataSetChanged(); 
} 

그게 당신의 어댑터를 notifyDataSetChanged를 호출합니다. 이제 목록 데이터를 변경할 수 있습니다.

그리고 귀하의 질문에 대해 나는 그렇다고 생각합니다. 나중에 exentd 할 간단한 가능성을 가지기 위해 자신의 어댑터를 만드는 것이 낫습니다. 그리고 귀하의 경우 (각 타이틀 변경 후 어댑터를 변경하고 싶지 않다면) 맞춤형 어댑터가 필요합니다. 건배