2016-03-20 35 views
0

enter image description here我試圖創建一個列表視圖,該列表視圖可以在輸入數字時顯示記錄。記錄數量將等於在給定文本字段中輸入的數字。 它工作正常,但問題是列表包含列表中不需要的UI的所有組件。列表視圖(在UI中)包含不在列表視圖中的所有組件

下面是我activity.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="poc.tusharimaging.com.bluetooth_poc.MainActivity"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="83dp" 
     android:id="@+id/relativeLayout"> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/numOfRows" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentBottom="true" 
      android:layout_toLeftOf="@+id/set" 
      android:layout_toStartOf="@+id/set" /> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Set" 
      android:id="@+id/set" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentBottom="true" /> 
    </RelativeLayout> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/linearLayout" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_below="@+id/relativeLayout"> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="40dp"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/date" 
       android:layout_alignParentBottom="true" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:layout_alignParentTop="true" 
       android:layout_toLeftOf="@+id/retrive" 
       android:layout_toStartOf="@+id/retrive" /> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/time" 
       android:layout_alignParentBottom="true" 
       android:layout_alignParentRight="true" 
       android:layout_alignParentEnd="true" 
       android:layout_alignParentTop="true" 
       android:layout_toRightOf="@+id/retrive" 
       android:layout_toEndOf="@+id/retrive" /> 

      <Button 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Retrive" 
       android:id="@+id/retrive" 
       android:layout_centerVertical="true" 
       android:layout_centerHorizontal="true" /> 

     </RelativeLayout> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <ListView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/items" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:layout_alignParentTop="true" /> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/data" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" /> 
     </RelativeLayout> 

    </LinearLayout> 

</RelativeLayout> 

的Java代碼如下。

ArrayAdapter<String> records; 
ListView listView = (ListView)findViewById(R.id.items); 
records = new ArrayAdapter<String>(this, R.layout.activity_main, R.id.data, values); 
listView.setAdapter(records); 
+0

你說的這是不是在列表中選擇所需的UI組件是什麼意思? – speedDeveloper

+0

組件@ + id/numOfRows,@ + id/set,@ + id/date,@ + id/time和@ + id/retrive是@ + id/data和數據的一部分。附上屏幕截圖的細節。 –

+0

你是如何在代碼@tushar中將佈局附加到ListView的? – speedDeveloper

回答

1

這樣創建ArrayAdapter:

ArrayAdapter<String> records; 
ListView listView = (ListView) findViewById(R.id.items); 
records = new ArrayAdapter<String>(this, R.layout.list_item_layout, R.id.data, values); 
listView.setAdapter(records); 

因爲一個ArrayAdapter需要一個項目佈局,以顯示在ListView不是整個佈局的項目。 文檔http://developer.android.com/reference/android/widget/ArrayAdapter.html

list_item_layout

<?xml version="1.0" encoding="utf-8"?> 
<TextView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/data" 
    ></TextView> 

base_layout

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="poc.tusharimaging.com.bluetooth_poc.MainActivity" 
    android:orientation="vertical"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="83dp" 
     android:id="@+id/relativeLayout"> 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/numOfRows" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentBottom="true" 
      android:layout_toLeftOf="@+id/set" 
      android:layout_toStartOf="@+id/set" /> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Set" 
      android:id="@+id/set" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentBottom="true" /> 
    </RelativeLayout> 



     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="40dp"> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/date" 
       android:layout_alignParentBottom="true" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:layout_alignParentTop="true" 
       android:layout_toLeftOf="@+id/retrive" 
       android:layout_toStartOf="@+id/retrive" /> 

      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/time" 
       android:layout_alignParentBottom="true" 
       android:layout_alignParentRight="true" 
       android:layout_alignParentEnd="true" 
       android:layout_alignParentTop="true" 
       android:layout_toRightOf="@+id/retrive" 
       android:layout_toEndOf="@+id/retrive" /> 

      <Button 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Retrive" 
       android:id="@+id/retrive" 
       android:layout_centerVertical="true" 
       android:layout_centerHorizontal="true" /> 

     </RelativeLayout> 



      <ListView 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:id="@+id/items" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:layout_alignParentTop="true" /> 





</LinearLayout> 
+0

這適用於我。 –