2015-10-30 72 views
-1

我使用RecyclerView與GridLayoutManager如何在Android中使用GridView?

我需要建立在Android的一個簡單Matching game。下面是我的Model類:

public class Model{ 
private String name; 
private String SchoolName; 
..... 
// Getter and Setter methods 
.... 
} 

我使用GridView顯示的數據,它的工作不錯,但我想提出以下約束在填充GridView

  • 負荷名稱在第一列
  • 負載第二列學校名稱

當前按隨機順序加載:

Name1     | Name 2 
SchoolName 1   | Name 3 
Name 3    | SchoolName 2 

我該怎麼做?做這件事的好方法是什麼?

+0

把你的數據在交替順序? – Bhargav

+0

更好地使用ListView和自定義適配器。 – activesince93

+0

使用相同的視圖爲兩個行,匹配的寬度有兩個textview半個屏幕。 –

回答

0

使用自定義列表視圖用這個佈局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="HTTP://sachems.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#ddd" 
    android:padding="8dp" 
    android:orientation="horizontal"> 

    <TextView 
     android:id="@+id/name" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:elevation="1dp" 
     android:layout_marginRight="8dp" 
     android:layout_weight="1" 
     android:background="#fff"/> 

    <TextView 
     android:id="@+id/school_name" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:elevation="1dp" 
     android:layout_weight="1" 
     android:background="#fff"/> 
</LinearLayout> 

然後在第二TextView的

或第一的TextView和學校名稱顯示的名稱,你可以做

position%2==0 { 
show name 
} 
else { 
show school name 
} 
+0

不提,或者如果你必須使用gridview使用列數爲1,並做同樣的事情 – shreyas

+0

我認爲在第二種方法中,很多數據將被遺漏。例如:您將始終將對象傳遞給ListView或GridView或甚至在RecyclerView中。第一個對象:檢查位置(位置爲0)加載名稱然後用第二個對象(位置爲1)加載學校名稱。所以在這裏我們錯過了'object [0] .Schoolname'和'Object [1] .name' 什麼說? –

+0

如果你正在使用第二種方法(我反對),你的listview大小變成2xdatasource大小。第一種方法有什麼問題? – shreyas

0

吃兩爲名稱和其他名稱排列一個名稱,並設置使用位置屬性的名稱。

喜歡的東西:

private int[] names = { 
     //names here 
    }; 

private int[] schoolnames = { 

     //school names here 
    }; 

然後在適配器:

public View getView(int position, View convertView, ViewGroup arg2) { 
      // TODO Auto-generated method stub 

      if(position == x){ 
       //add name 
      } 
      else{ 
       //add school name 
        } 

      return view; 
     } 
+0

你應該在條件正確的地方使用'position%2 == 0'嗎? – Bhargav

+0

@Vinay這將工作,但我需要創建兩個額外的數組。這也沒關係,但是當我擁有數百萬的數據時呢? –

+0

@Bhargav是使用位置%2 == 0我們可以做到這一點。 –

相關問題