2012-02-02 2 views
3

implement a List View and populate it에 대한 Android 설명서를 보면 대신에 ListActivity을 확장하는 Java에서 수행하는 방법에 대해서만 알게되지만 어떻게 될까요? XML 레이아웃 파일을 사용하여 코드를 작성하고 레이아웃을 채우고 Activity을 확장 하시겠습니까? 나는 RelativeLayout을 구현하고 ListView.inflate()addHeaderView()/addFooterView()를 사용하는 것보다 더 많은 유연성 함께 화면에 더 많은 요소를 추가 할 수 있기 때문에Android 문서 목록보기 XML의 소스 코드 예제

나는이 부탁 해요.

답변

1

아무런 문제없이 활동에서 연장 할 수 있습니다. ListActivity를 확장하면 아주 쉽게 할 수 있습니다. 당신은 그것이 무엇을하는지 이해하기 위해서 see the source code 일 수 있습니다. 그것은 findViewById()를 호출하고 어댑터를 설정하는 것으로 귀결됩니다. ListView를 다루는 가장 어려운 부분은 ListView 자체가 아니라 어댑터입니다.

7

나는 당신이 찾고있는 방법이 자신의 목록을 만들고 채우는 것이라고 생각합니다.

  • 기본 레이아웃 (mainLayout.xml) 만들기 // 적어도 하나 이상의 선형 레이아웃이 있어야합니다.
  • 목록 행에 대한 템플릿 레이아웃을 만듭니다.
  • 액티비티에서 for 루프를 사용하여 템플릿을 부 풀린 다음 템플릿을 채우고 주 레이아웃에 추가하십시오. 여기

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="50dp" 
    android:id="@+id/listLayout" 
    android:clickable="true" 
    > 
      <TextView android:layout_width="wrap_content" 
         android:textAppearance="?android:attr/textAppearanceLarge" 
         android:layout_marginLeft="3dp" 
         android:layout_height="wrap_content" 
         android:layout_alignParentLeft="true" 
         android:layout_alignParentTop ="true" 
         android:id="@+id/mainText" 
         android:text="TextView"> 
       </TextView> 
</RelativeLayout> 

및 활동에 listtemplate.xml,

public void CreateAndAppendListLayout() 
{ 
    List<String> mainList; //populate it... 
    LinearLayout mainLayout = (LinearLayout) findViewById(R.id.mainLayout); 
    LayoutInflater li = (LayoutInflater)getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    for (int i = 0; i < mainList.size(); i++){ 
     View tempView = li.inflate(R.layout.listtemplate, null); 
     TextView textMain = (TextView) tempView.findViewById(R.id.mainText); 

     textMain.setText(mainList.get(i)); 
     mainLayout.addView(tempView); 
     } 
} 
+0

그러나이'ListView'를 사용하지 않는, 예입니다 –