2013-01-08 79 views
0

我試圖做一個與ImageButtons動態網格視圖,我有這個問題。 開始之前我必須說我是新的Android和Java開發(2.5年的Objective-C)。無法添加ImageButtons到GridView與適配器<ImageButton>在Android

好的。所以即時通訊使用此代碼:

@Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_background);

ArrayList<ImageButton> tmpStrRay = new ArrayList<ImageButton>(); 

Boolean load=true; 
for (int i= 0;load;i++){ 
    ImageButton iv = new ImageButton(this); 
    InputStream ims; 

    try { 
     ims = getAssets().open("sm_backgrounds/bgSM_"+i+".jpg"); 
     Drawable d = Drawable.createFromStream(ims, null); 
     iv.setImageDrawable(d); 
     tmpStrRay.add(iv); 

    } catch (IOException e) { 
     load = false; 
     e.printStackTrace(); 
    } 

    System.out.print(i); 
} 

GridView grid = (GridView) findViewById(R.id.gridView); 
ArrayAdapter<ImageButton> adapter = new ArrayAdapter<ImageButton>(this, android.R.layout.simple_list_item_1, tmpStrRay); 
grid.setAdapter(adapter); 

}

和我有這個XML在我的佈局:

<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" 
    tools:context=".BackgroundSelector" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:orientation="horizontal" 
     android:id="@+id/topLinear"> 

     <Button 
      android:id="@+id/button1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:onClick="close" 
      android:text="Close" 
      android:textSize="15sp" /> 

     <Button 
      android:id="@+id/Button01" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:onClick="showCamera" 
      android:text="Camera" 
      android:textSize="15sp" /> 
    </LinearLayout> 

    <ScrollView 
     android:id="@+id/scrollView1" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/topLinear" > 

     <GridView 
      android:id="@+id/gridView" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:numColumns="3" > 
     </GridView> 
    </ScrollView> 

</RelativeLayout> 

和我得到電網這個奇怪的結果與文本,通常我會說描述的ImageButton代替顯示按鈕自己。 我相信它對你們中的大多數人來說都很簡單 - 但如果你有答案,我真的很希望得到解釋。

謝謝!

回答

0

您使用ArrayAdapter適配器,它採用android.R.layout.simple_list_item_1佈局(即TextView)並使用tmpStrRay [i] .toString()文本填充此textView。

要使用比TextViews其他東西的陣列顯示器,例如,ImageViews,或有一些數據除了的toString()結果填補意見,覆蓋getView(INT,查看,ViewGroup中)返回類型你想要的視圖。

+0

謝謝,我搜索了一些更多,你的答案和我在互聯網上獲得的信息完成任務。謝謝 ! –

相關問題