Xuni コントロール > FlexGrid > 機能 > カスタムセル |
FlexGrid には、セルのコンテンツを完全に制御できる formatItem プロパティがあります。インラインセルテンプレートを追加することで各列をカスタマイズでき、FlexGrid コントロールでのセルの外観を定義できます。列のセルテンプレートを定義するには、画像、テキスト、アイコンなどの入った任意のタイプのコンテンツを追加します。
次の図は、パフォーマンスを表すセルテンプレートとして XuniGauge を設定したときの FlexGrid を示しています。この例では、「クイックスタート」セクションで作成したサンプルを使用します。
次のコード例は、FlexGrid コントロールにカスタムセルコンテンツを追加する方法を示します。
Java |
コードのコピー
|
---|---|
import java.util.Random; import android.app.Activity; import android.os.Bundle; import com.grapecity.xuni.core.*; import com.grapecity.xuni.flexgrid.*; |
Java |
コードのコピー
|
---|---|
public class CustomCellsActivity extends Activity { private FlexGrid mGrid; private GridCellFactory mCellFactory; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_custom_cells); // flexgrid を初期化します mGrid = (FlexGrid) findViewById(R.id.flexgrid); // 新しいセルファクトリを設定します mCellFactory = new CellFactory(mGrid, this); mGrid.setCellFactory(mCellFactory); // 新しい列を初期化します GridColumn columnFirst = new GridColumn(mGrid, "First", "first"); GridColumn columnLast = new GridColumn(mGrid, "Last", "last"); GridColumn columnWeight = new GridColumn(mGrid, "Performance", "performanceGauge"); // 新しい列を追加します mGrid.getColumns().add(columnFirst); mGrid.getColumns().add(columnLast); mGrid.getColumns().add(columnWeight); mGrid.setItemsSource(getList()); } // ランダムオブジェクトのリストを作成するメソッドを生成します private static ObservableList<CustomCellPoint> getList() { ObservableList<CustomCellPoint> list = new ObservableList<CustomCellPoint>(); int n = 100; // 系列要素の数 String[] firstNames = { "Paul", "Ben", "Ted", "Ed", "Dan", "Jack" }; String[] lastNames = { "Richards", "Neiman", "Evers", "Lehman", "Krause", "Stevens" }; int m = 6; Random random = new Random(); for (int i = 0; i < n; i++) { list.add(new CustomCellPoint(firstNames[random.nextInt(m)], lastNames[m - random.nextInt(m) - 1], random.nextInt(100))); } return list;}} class CustomCellPoint { private String first; private String last; private int performanceGauge; public CustomCellPoint(String first, String last, int performanceGauge) { super(); this.first = first; this.last = last; this.performanceGauge = performanceGauge; } public String getFirst(){ return first; } public void setFirst(String first){ this.first = first;} public String getLast() { return last; } public void setLast(String last) { this.last = last; } public int getPerformanceGauge() { return performanceGauge; } public void setPerformanceGauge(int performanceGauge) { this.performanceGauge = performanceGauge;}} |