Xuni コントロール > FlexGrid > クイックスタート:FlexGrid へのデータの追加 |
このセクションでは、Android アプリに FlexGrid コントロールを追加し、そこにデータを追加する方法について説明します。Java で Xuni コントロールを追加する方法については、「Java による Xuni コントロールの追加」を参照してください。
このトピックは 3 つの手順で構成されます。
次の図は、上記の手順を実行した後の 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; } } } |
Java で 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); } } |
デバイス上にコントロールをレンダーするには、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> |
パッケージエクスプローラーで、アプリケーションを右クリックし、[実行]→[Android アプリケーション]をクリックします。