2013-01-20 34 views

回答

1

這是可能的還是我看錯了地方?

這是可能的GridViewViewBaseAdapterLayoutInflater。您可以膨脹單元格的視圖(每個單元格爲View)。例如:

main.xml

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/gridView1" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    <!-- add additional properties as needed --!> 
</GridView> 

player.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/grid_item_team_name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@+id/teamName" 
     android:layout_marginTop="10dp" 
     android:textSize="20dp" > 
     <!-- add or modify the properties as needed --!> 
    </TextView> 

</LinearLayout> 

ImageAdapter.java

public class ImageAdapter extends BaseAdapter { 
     private Context context; 
     private final String[] teamValues; 

     public LayoutInflater inflater; 
     public LinearLayout ll; 

     public ImageAdapter(Context context, String[] teamValues) { 
      this.context = context; 
      this.teamValues = teamValues; 
     } 

     public View getView(int position, View convertView, ViewGroup parent) { 

      inflater = (LayoutInflater) context 
        .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

      View gridView; 

      if (convertView == null) { 

       gridView = new View(context); 

       // get layout from player.xml 
       gridView = inflater.inflate(R.layout.player, null); 

       // set value into textview 
       ll = (LinearLayout)gridView.findViewById(R.id.linear1); 
       TextView textView = (TextView) gridView 
         .findViewById(R.id.grid_item_team_name); 
       textView.setText(teamValues[position]); 

       String team = teamValues[position]; 
       // add team members here 
       // 
       // 
       //      

      } else { 
       gridView = (View) convertView; 
      } 

      return gridView; 
     } 
    } 

GridViewActivity.java

public class GridViewActivity extends Activity { 

    GridView gridView; 
    ImageAdapter mImageAdapter; 

    String[] teamName; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     teamName = getTeamName(); 
     mImageAdapter = new ImageAdapter(this, teamName); 

     gridView = (GridView)findViewById(R.id.gridView1); 

     registerForContextMenu(gridView); 
     gridView.setAdapter(mImageAdapter); 

    } 

    @Override 
    public void onCreateContextMenu(ContextMenu iMenu, View iView, ContextMenuInfo iMenuInfo) { 
     super.onCreateContextMenu(iMenu, iView, iMenuInfo); 

     iMenu.setHeaderTitle("TEAM NAME"); 
     iMenu.clear(); 
     for (int i = 0; i < nTotalTeam; i++) { 
      iMenu.add(Menu.NONE, i, Menu.NONE, teamName[i]); 
     } 
    } 

    private void getTeamName() { 
    // 
    // getTeamName and return the array of string 
    // 
    // 
    } 
} 
0

一個GridView絕對是在這裏。 GridView中的每個視圖都是一個View - 你想要的任何視圖。是的,你可以編程添加新的視圖。如果你不想讓它們變得非常靈活,那麼不同的單元甚至不需要是相同類型的視圖。

相關問題