Xuni for Android のドキュメント
カスタムセル

FlexGrid には、セルのコンテンツを完全に制御できる formatItem プロパティがあります。インラインセルテンプレートを追加することで各列をカスタマイズでき、FlexGrid コントロールでのセルの外観を定義できます。列のセルテンプレートを定義するには、画像、テキスト、アイコンなどの入った任意のタイプのコンテンツを追加します。

次の図は、パフォーマンスを表すセルテンプレートとして XuniGauge を設定したときの FlexGrid を示しています。この例では、「クイックスタート」セクションで作成したサンプルを使用します。

次のコード例は、FlexGrid コントロールにカスタムセルコンテンツを追加する方法を示します。

  1. 新しいクラス(たとえば CustomCells.Java)を Android プロジェクトに追加し、以下のように Xuni FlexGrid 参照を含めます。
    Java
    コードのコピー
    import java.util.Random;
    import android.app.Activity;
    import android.os.Bundle;
    import com.grapecity.xuni.core.*;
    import com.grapecity.xuni.flexgrid.*;
    
  2. 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;}}
    

 

 


Copyright © GrapeCity inc. All rights reserved.