2011-02-07 1 views
1

저는 입니다. Android에서 개발하기 시작한 것은 바로이므로 매우 기본적인 문제 일 수 있습니다. . .어떻게 인라인 ListView를 설정할 수 있습니까?

내에서 ListView을 설정하는 것이 정말 힘듭니다. 어쩌면 내 XML 레이아웃에 문제가 있거나 어쩌면 데이터 바인딩 코드에 문제가있을 수 있습니다.

ActivityListActivity으로 확장되어야한다고 말하는 많은 자습서에 혼란 스럽습니다. 이 위젯으로 인해 내 UI 전체가 변경되어야하는 이유는 무엇입니까?

문제는이 항목의 스크롤 상자가이 화면의 일부를 차지하고 싶을뿐입니다. ListView 잘못된 위젯을 사용할 수 있습니까? 대신 ScrollView을 사용해야합니까? 여기

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#FFF" 
    > 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/enter_text" 
     /> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"> 

     <EditText 
      android:id="@+id/txtTo" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:gravity="left" 
      android:layout_weight="1" 
      android:width="200px"/> 
     </LinearLayout> 
     <ListView android:id="@+id/listRecent" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 
    </LinearLayout> 

그리고 내 코드입니다 :

public class MyApp extends Activity { 

private String TAG = "MyApp"; 

//UI ELEMENTS 
EditText txtTo; 
ListView listRecent; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    //GET REFERENCES TO UI ELEMENTS 
    listRecent = (ListView) this.findViewById(R.id.listRecent); 

    try { 

     //---------------------------------------- 
     // create the grid item mapping 
     String[] from = new String[] {"zero", "one", "two", "three"}; 
     int[] to = new int[] {0, 1, 2, 3}; 

     // prepare the list of all records 
     List<HashMap<String, String>> fillMaps = new ArrayList<HashMap<String, String>>(); 
     for(int i = 0; i < 10; i++){ 
      HashMap<String, String> map = new HashMap<String, String>(); 
      map.put("rowid", "" + i); 
      map.put("col_1", "col_1_item_" + i); 
      map.put("col_2", "col_2_item_" + i); 
      map.put("col_3", "col_3_item_" + i); 
      fillMaps.add(map); 
     } 

     // fill in the grid_item layout 
     SimpleAdapter adapter = new SimpleAdapter(this, fillMaps, R.layout.recently_dingdonged, from, to); 
     listRecent.setAdapter(adapter); 
     //---------------------------------------- 

    } 
    catch(Exception e) { 
     Log.e(TAG, "Error here (3116019)", e); 
    } 

} 

답변

0

ActivityListActivity까지 확장 할 필요는 없습니다. 할 수는 있지만 꼭 필요한 것은 아닙니다.

당신의 XML과 관련하여

이 밖으로 시도 :

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#FFF" 
    > 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/enter_text" 
     /> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 

     <EditText 
      android:id="@+id/txtTo" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:gravity="left" 
      android:layout_weight="0.5" 
      android:width="200px"/> 
     </LinearLayout> 
     <ListView android:id="@+id/listRecent" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.5" /> 
    </LinearLayout> 
+0

가있어 - 감사합니다 :) – marclar

1

의 ListView가있는 ScrollView의 안에 중첩되어야한다 -

덕분에 여기 내 XML입니다. listActivity를 확장하면 setAdapter 기능을 얻고 목록을 인스턴스화하지 않고 기본 객체를 통해 목록보기에 데이터를 채 웁니다. 이것은 결코 요구 사항이 아닙니다.