2014-02-18 131 views
0

我正在開發android.I應用程序在我的佈局中有一個網格視圖。在網格視圖中插入的文本我從Web服務獲取..這是我把一個數組..數組大小大於18.但是,當我使用適配器設置爲GridView,它只是顯示爲一個當數據很大時,滾動會啓用ryt?..但它不會到來。滾動不進入網格視圖

這是我的XML佈局

<?xml version="1.0" encoding="utf-8"?> 

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" > 

<ImageButton 
    android:id="@+id/cancelbutton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentRight="true" 
    android:background="@android:color/transparent" 
    android:onClick="onButtonClick" 
    android:src="@drawable/cancel"/> 

<Button 
    android:id="@+id/page4" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/Page4" 
    android:textSize="20sp" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentRight="true" 
    android:onClick="page4ButtonClick" /> 
<Button 
    android:id="@+id/page3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/Page3" 
    android:textSize="20sp" 
    android:layout_alignParentBottom="true" 
    android:layout_toLeftOf="@+id/page4" 
    android:onClick="page3ButtonClick" /> 
<Button 
    android:id="@+id/page2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/Page2" 
    android:textSize="20sp" 
    android:layout_alignParentBottom="true" 
    android:layout_toLeftOf="@+id/page3" 
    android:onClick="page2ButtonClick"/> 
<Button 
    android:id="@+id/page1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/Page1" 
    android:textSize="20sp" 
    android:layout_alignParentBottom="true" 
    android:layout_toLeftOf="@+id/page2" 
    android:onClick="page1ButtonClick" /> 

<TextView 
    android:id="@+id/qr_code_label" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:text="@string/qr_code_label" /> 

<Button 
    android:id="@+id/imageButton" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:onClick="onImageButtonClick" 
    android:text="@string/image" /> 

<Button 
    android:id="@+id/qrButton" 
    style="?android:attr/buttonStyleSmall" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_toRightOf="@+id/imageButton" 
    android:onClick="onQRButtonClick" 
    android:text="@string/qr" /> 
<GridView 
    android:id="@+id/gridView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 

    android:columnWidth="80dp" 
    android:gravity="center_horizontal" 
    android:layout_centerInParent ="true" 
    android:layout_marginTop="150dp" 
    android:verticalSpacing="0dp" 
    android:horizontalSpacing="0dp" 
    android:numColumns="2" 
    android:stretchMode="columnWidth" 
    android:background="@color/peach" 
    android:visibility="invisible" 
    > 
</GridView> 



    </RelativeLayout> 

而這正是我打電話web服務和插入數據

private ArrayList<String> callService() 
{ 
    ArrayList<String> devices; 
    devices=new ArrayList<String>(); 
    try 
    { 
     ODataConsumer con=ODataJerseyConsumer.create("url of web service"); 
     List<OEntity> listEntities = con.getEntities("Devices").execute().toList(); 
     if (listEntities.size() > 0) 
     { 

      for (OEntity entity : listEntities) 
      { 

       devices.add(entity.getProperty("Name").getValue().toString()); 


      }    
     } 

     String[] devices_list= new String[devices.size()]; 
     devices_list = devices.toArray(devices_list); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, devices_list); 

     mGrid.setAdapter(adapter); 
    } 
    catch(Exception e) 
    { 

    } 

    return devices; 
}  

而在另一項功能我設置網格視圖中的可見性的函數可見。這是在UI線程中完成的。網格視圖正在出現,但沒有任何數據,它將以小條形式出現。

請幫助我,因爲我是新到Android ..

+0

這可能有助於http://stackoverflow.com/a/12456787/2982379 – yakhtarali

回答

2

變化android:layout_widthandroid:layout_heightfill_parent。像這樣嘗試。

<GridView 
    android:id="@+id/gridView1" 
    android:numColumns="3" 
    android:gravity="center" 
    android:columnWidth="50dp" 
    android:stretchMode="columnWidth" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

</GridView> 

告訴我,如果它不工作;)

+0

我改變佈局的寬度和高度,以填補父。網格即將到來。但是數據沒有被顯示。網格視圖的背景顏色將獨自出現。我錯過了什麼?.. – user3060070

+2

請確保您的背景顏色不同於文本顏色 – yakhtarali

+0

是的,我得到.. :)實際上它只是一個線程的問題。現在工作正常..謝謝你.. :) – user3060070