Xuni for Android のドキュメント
クイックスタート:FlexGrid へのデータの追加

このセクションでは、Android アプリに FlexGrid コントロールを追加し、そこにデータを追加する方法について説明します。Java で Xuni コントロールを追加する方法については、「Java による Xuni コントロールの追加」を参照してください。

このトピックは 3 つの手順で構成されます。

次の図は、上記の手順を実行した後の FlexGrid を示しています。

手順 1:FlexGrid のデータソースの作成

次のクラスは、FlexGrid コントロールのデータソースとして機能します。

Java
コードのコピー
import java.text.ParseException;
import java.util.Random;
import com.grapecity.xuni.core.*;

public class FlexGridDataSource
{
protected int id;
protected String name;
protected String country;
protected boolean active;
protected String first;
protected String last;
protected float weight;

public FlexGridDataSource()
{
super();
this.id = 0;
this.name = "";
this.country = "";
this.active = false;
this.first = "";
this.last = "";
this.weight = 0;
}

public FlexGridDataSource(int id, String name,  String country, boolean active, String first, String last, 

float weight)
{
super();
this.id = id;
this.name = name;
this.country = country;
this.active = active;
this.first = first;
this.last = last;
this.weight = weight;
}

public FlexGridDataSource(int id, String first, String last, float weight)
{
super();
this.id = id;
this.first = first;
this.last = last;
this.weight = weight;
}

public FlexGridDataSource(String[] data) throws ParseException
{
super();
this.id = Integer.valueOf(data[0]);
this.name = data[1];
this.country = data[2];
this.active = Boolean.valueOf(data[3]);
this.first = data[4];
this.last = data[5];
this.weight = Float.valueOf(data[6]);
}

public String getCountry() 

{

 return country; 

}

public void setCountry(String country)

 {

 this.country = country;

 }

public boolean isActive() 

{

 return active; 

}

public void setActive(boolean active) 

{ 

this.active = active; 

}

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 float getWeight() 

{ 

return weight; 

}

public void setWeight(float weight) 

{ 

this.weight = weight;

}

public int getId() 

{ 

return id;

}

public void setId(int id) 

{ 

this.id = id; 

}

public String getName() 

{ 

return name; 

}

public void setName(String name) 

{ 

this.name = name; 

}

public static ObservableList<FlexGridDataSource> getList()
{
ObservableList<FlexGridDataSource> list = new ObservableList<FlexGridDataSource>();

int n = 100; // 系列要素の数
String[] firstNames =
{ "Paul", "Ben", "Ted", "Ed", "Dan", "Jack" };
String[] lastNames =
{ "Richards", "Neiman", "Evers", "Lehman", "Krause", "Stevens" };
String[] countries =
{ "US", "Germany", "UK", "Japan", "Italy", "Greece", "India", "Canada" };
int m = 6;
int temp1;
int temp2;
int temp3;
Random random = new Random();
for (int i = 0; i < n; i++)
{
temp1 = random.nextInt(m);
temp2 = random.nextInt(m);
temp3 = random.nextInt(m);
list.add(new FlexGridDataSource(i, (firstNames[temp1] + " " + lastNames[temp2]), countries[temp3], 

(random.nextInt(2) == 0) ? false : true,
firstNames[temp1], lastNames[temp2], random.nextFloat() * 200));
}
return list;
}

public String[] toStringArray()
{
String[] toArray =
{ Integer.toString(id), name,  country, Boolean.toString(active), first, last, Float.toString

(weight),
};
return toArray;
}
}
C#
コードのコピー
 public class FlexGridDataSource : Java.Lang.Object
    {
        
        static Random _rnd = new Random();
        static string[] _firstNames = "Paul|Ben|Ted|Ed|Dan|Jack".Split('|');
        static string[] _lastNames = "Richard|Neiman|Evers|Lehman|Krause|Stevens".Split('|');
        static string[] _countries = "US|Germany|UK|Japan|Italy|Greece|India|Canada".Split('|');


        public FlexGridDataSource()
            : this(_rnd.Next(10000))
        {
        }
        public FlexGridDataSource(int id)
        {
            ID = id;
            
            First = GetString(_firstNames);
            Last = GetString(_lastNames);
            CountryID = _rnd.Next() % _countries.Length;
            Active = _rnd.NextDouble() >= .5;
            Hired = DateTime.Today.AddDays(-_rnd.Next(1, 365));
        }

        public int ID
        {
            get;
            set;
        }


        public int CountryID { get; set; }

        public bool Active { get; set; }

        public string First { get; set; }

        public string Last { get; set; }

        public DateTime Hired { get; set; }


        static string GetString(string[] arr)
        {
            return arr[_rnd.Next(arr.Length)];
        }
        static string GetName()
        {
            return string.Format("{0} {1}", GetString(_firstNames), GetString(_lastNames));
        }

        public static IList<object> GetCustomerList(int count)
        {
            var list = new List<object>();
            for (int i = 0; i < count; i++)
            {
                list.Add(new FlexGridDataSource(i));
            }
            return list;
        }

        // ** 静的値プロバイダ
        public static string[] GetCountries() { return _countries; }
        public static string[] GetFirstNames() { return _firstNames; }
        public static string[] GetLastNames() { return _lastNames; }
    }
}

先頭に戻る

手順 2:FlexGrid コントロールの追加

Java で FlexGrid コントロールを初期化するには、次の手順を実行します。

サンプルコード

  1. 新しいクラス(たとえば QuickStart.Java)を Android プロジェクトに追加し、以下のように Xuni FlexGrid 参照を含めます。
    Java
    コードのコピー
    import android.app.Activity;
    import android.os.Bundle;
    import com.grapecity.xuni.flexgrid.*;
    
    C#
    コードのコピー
    using Android.App;
    using Android.OS;
    using Com.GrapeCity.Xuni.FlexGrid;
    
  2. FlexGrid コントロールをインスタンス化します。
    Java
    コードのコピー
    public class QuickStartActivity extends Activity{
    
    private FlexGrid mGrid;
    
    @Override
            protected void onCreate(Bundle savedInstanceState)
            {
    super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_getting_started);
    
    // グリッドを初期化します
            mGrid = (FlexGrid) findViewById(R.id.flexgrid);
            
            mGrid.setAutoGenerateColumns(true);
              mGrid.setItemsSource(FlexGridDataSource.getList());
            }
            }
    
    C#
    コードのコピー
    public class QuickStartActivity : Activity
        {
     FlexGrid _mGrid;
            protected override void OnCreate(Bundle bundle)
            {
                base.OnCreate(bundle);
    
    this._mGrid.AutoGenerateColumns = true;
    this._flexGrid.ItemsSource = FlexGridDataSource.GetCustomerList(50);
     }
    }
    

     

  3. デバイス上にコントロールをレンダーするには、Javaの場合、下記のXMLコードをactivity_mainレイアウトファイルに追加します。C#の場合は、Main.axmlに追加します。

    Java
    コードのコピー
    <LinearLayout 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="${relativePackage}.${activityClass}" >
    
        <com.grapecity.xuni.flexgrid.FlexGrid
            android:id="@+id/flexgrid"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >
        </com.grapecity.xuni.flexgrid.FlexGrid>
    
    </LinearLayout>
    
    C#
    コードのコピー
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
    android:orientation="vertical"    
    android:layout_width="fill_parent"    
    android:layout_height="fill_parent">    
    
    <com.grapecity.xuni.flexgrid.FlexGrid        
    android:id="@+id/flexgrid"        
    android:layout_width="fill_parent"        
    android:layout_height="fill_parent" />
    
    </LinearLayout>
    

先頭に戻る

手順 3:アプリケーションの実行

パッケージエクスプローラーで、アプリケーションを右クリックし、[実行]→[Android アプリケーション]をクリックします。

先頭に戻る

 

 


Copyright © GrapeCity inc. All rights reserved.