From 9300c23a79540b35fa6247657a7edfe38155e4bf Mon Sep 17 00:00:00 2001 From: sekelsenmat Date: Mon, 22 Aug 2011 09:21:55 +0000 Subject: [PATCH] android: Adds spinner position git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1824 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- .../android_bindings_generator.lpi | 118 +++++++++--------- .../android-sdk/android_sdk_bindings_gen.pas | 9 ++ .../android-sdk/sdk_level_7/android_all.txt | 7 +- .../src/com/pascal/androidlcl/AndroidAll.java | 63 +++++----- examples/androidlcl/mainform.lfm | 9 ++ examples/androidlcl/mainform.pas | 13 ++ 6 files changed, 128 insertions(+), 91 deletions(-) diff --git a/bindings/android-sdk/android_bindings_generator.lpi b/bindings/android-sdk/android_bindings_generator.lpi index 662cd7815..4f87fae88 100644 --- a/bindings/android-sdk/android_bindings_generator.lpi +++ b/bindings/android-sdk/android_bindings_generator.lpi @@ -117,10 +117,11 @@ + - - + + @@ -200,8 +201,8 @@ - - + + @@ -243,7 +244,6 @@ - @@ -272,124 +272,124 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - - + + - - + + - - + + - + - + - - + + - + - - + + - - + + - + - - + + - + - + - + - - + + - + - + - + - + - - + + - - + + - - + + - - + + diff --git a/bindings/android-sdk/android_sdk_bindings_gen.pas b/bindings/android-sdk/android_sdk_bindings_gen.pas index a27112b25..0e63df58d 100644 --- a/bindings/android-sdk/android_sdk_bindings_gen.pas +++ b/bindings/android-sdk/android_sdk_bindings_gen.pas @@ -163,11 +163,15 @@ begin ADest.Add(' public boolean ProcessCommand(int Buffer)'); ADest.Add(' {'); ADest.Add(' //DebugOut("AndroidUI.ProcessCommand Command=" + java.lang.Integer.toHexString(Buffer));'); + ADest.Add(' //'); ADest.Add(' // basic types'); + ADest.Add(' //'); ADest.Add(' int lInt, lIndex, lPascalPointer;'); ADest.Add(' boolean lBool;'); ADest.Add(' float lFloat;'); + ADest.Add(' //'); ADest.Add(' // Self params'); + ADest.Add(' //'); ADest.Add(' View param_self_View;'); ADest.Add(' ViewGroup param_self_ViewGroup;'); ADest.Add(' TextView param_self_TextView;'); @@ -181,7 +185,10 @@ begin ADest.Add(' WindowManager param_self_WindowManager;'); ADest.Add(' AbsSpinner param_self_AbsSpinner;'); ADest.Add(' ArrayAdapter param_self_ArrayAdapter_String_;'); + ADest.Add(' AdapterView param_self_AdapterView;'); + ADest.Add(' //'); ADest.Add(' // Params'); + ADest.Add(' //'); ADest.Add(' ViewGroup.LayoutParams lViewGroup_LayoutParams_1, lViewGroup_LayoutParams_2, lViewGroup_LayoutParams_3;'); ADest.Add(' SpinnerAdapter lSpinnerAdapter_1;'); ADest.Add(' DisplayMetrics lDisplayMetrics_1;'); @@ -191,7 +198,9 @@ begin ADest.Add(' int lint_1, lint_2, lint_3, lint_4;'); ADest.Add(' float lfloat_1, lfloat_2;'); ADest.Add(' boolean lboolean_1;'); + ADest.Add(' //'); ADest.Add(' // Results'); + ADest.Add(' //'); ADest.Add(' float lResult_float;'); ADest.Add(' int lResult_int;'); ADest.Add(' boolean lResult_boolean;'); diff --git a/bindings/android-sdk/sdk_level_7/android_all.txt b/bindings/android-sdk/sdk_level_7/android_all.txt index 7c46127a5..e46d01015 100644 --- a/bindings/android-sdk/sdk_level_7/android_all.txt +++ b/bindings/android-sdk/sdk_level_7/android_all.txt @@ -87,11 +87,9 @@ method CharSequence getText() [EditText] TextView constructor Create(Activity); override; -method void setText(CharSequence AText); override; [Button] TextView constructor Create(Activity); override; -method void setText(CharSequence AText); override; [FrameLayout] ViewGroup @@ -119,6 +117,7 @@ method void toggle() constructor Create(Activity) [AdapterView] ViewGroup +method int getSelectedItemPosition() [AbsSpinner] AdapterView # SpinnerAdapter getAdapter() @@ -129,8 +128,8 @@ method int getCount() # int pointToPosition(int x, int y) # void requestLayout() method void setAdapter(SpinnerAdapter adapter) -# void setSelection(int position, boolean animate) -# void setSelection(int position) +methodo void setSelection(int position, boolean animate); overload; +method void setSelection(int position); overload; [Spinner] AbsSpinner constructor Create(Activity); diff --git a/examples/androidlcl/android/src/com/pascal/androidlcl/AndroidAll.java b/examples/androidlcl/android/src/com/pascal/androidlcl/AndroidAll.java index ab5e96454..d413e23d9 100644 --- a/examples/androidlcl/android/src/com/pascal/androidlcl/AndroidAll.java +++ b/examples/androidlcl/android/src/com/pascal/androidlcl/AndroidAll.java @@ -77,10 +77,8 @@ public class AndroidAll static final int amkUI_TTextView_getText_6 = 0x0010B006; // EditText static final int amkUI_TEditText_Create_0 = 0x0010C000; - static final int amkUI_TEditText_setText_1 = 0x0010C001; // Button static final int amkUI_TButton_Create_0 = 0x0010D000; - static final int amkUI_TButton_setText_1 = 0x0010D001; // FrameLayout // TimePicker static final int amkUI_TTimePicker_Create_0 = 0x0010F000; @@ -100,9 +98,11 @@ public class AndroidAll // CheckBox static final int amkUI_TCheckBox_Create_0 = 0x00112000; // AdapterView + static final int amkUI_TAdapterView_getSelectedItemPosition_0 = 0x00113000; // AbsSpinner static final int amkUI_TAbsSpinner_getCount_0 = 0x00114000; static final int amkUI_TAbsSpinner_setAdapter_1 = 0x00114001; + static final int amkUI_TAbsSpinner_setSelection_2 = 0x00114002; // Spinner static final int amkUI_TSpinner_Create_0 = 0x00115000; // Filterable @@ -121,11 +121,15 @@ public class AndroidAll public boolean ProcessCommand(int Buffer) { //DebugOut("AndroidUI.ProcessCommand Command=" + java.lang.Integer.toHexString(Buffer)); + // // basic types + // int lInt, lIndex, lPascalPointer; boolean lBool; float lFloat; + // // Self params + // View param_self_View; ViewGroup param_self_ViewGroup; TextView param_self_TextView; @@ -139,7 +143,10 @@ public class AndroidAll WindowManager param_self_WindowManager; AbsSpinner param_self_AbsSpinner; ArrayAdapter param_self_ArrayAdapter_String_; + AdapterView param_self_AdapterView; + // // Params + // ViewGroup.LayoutParams lViewGroup_LayoutParams_1, lViewGroup_LayoutParams_2, lViewGroup_LayoutParams_3; SpinnerAdapter lSpinnerAdapter_1; DisplayMetrics lDisplayMetrics_1; @@ -149,7 +156,9 @@ public class AndroidAll int lint_1, lint_2, lint_3, lint_4; float lfloat_1, lfloat_2; boolean lboolean_1; + // // Results + // float lResult_float; int lResult_int; boolean lResult_boolean; @@ -501,37 +510,11 @@ public class AndroidAll ViewElements.add(new EditText(activity)); MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1); break; - // method void setText(CharSequence AText); override; - case amkUI_TEditText_setText_1: - DebugOut("amkUI_TEditText_setText_1"); - // Self - lInt = MyAndroidPipesComm.GetInt(); - param_self_EditText = (EditText) ViewElements.get(lInt); - // params - lInt = MyAndroidPipesComm.GetInt(); - lCharSequence_1 = (CharSequence) MyJavaLang.LangElements.get(lInt); - // - param_self_EditText.setText(lCharSequence_1); - MyAndroidPipesComm.SendResult(); - break; case amkUI_TButton_Create_0: DebugOut("amkUI_TButton_Create_0"); ViewElements.add(new Button(activity)); MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1); break; - // method void setText(CharSequence AText); override; - case amkUI_TButton_setText_1: - DebugOut("amkUI_TButton_setText_1"); - // Self - lInt = MyAndroidPipesComm.GetInt(); - param_self_Button = (Button) ViewElements.get(lInt); - // params - lInt = MyAndroidPipesComm.GetInt(); - lCharSequence_1 = (CharSequence) MyJavaLang.LangElements.get(lInt); - // - param_self_Button.setText(lCharSequence_1); - MyAndroidPipesComm.SendResult(); - break; case amkUI_TTimePicker_Create_0: DebugOut("amkUI_TTimePicker_Create_0"); ViewElements.add(new TimePicker(activity)); @@ -665,6 +648,17 @@ public class AndroidAll ViewElements.add(new CheckBox(activity)); MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1); break; + // method int getSelectedItemPosition() + case amkUI_TAdapterView_getSelectedItemPosition_0: + DebugOut("amkUI_TAdapterView_getSelectedItemPosition_0"); + // Self + lInt = MyAndroidPipesComm.GetInt(); + param_self_AdapterView = (AdapterView) ViewElements.get(lInt); + // params + // + lResult_int = param_self_AdapterView.getSelectedItemPosition(); + MyAndroidPipesComm.SendIntResult(lResult_int); + break; // method int getCount() case amkUI_TAbsSpinner_getCount_0: DebugOut("amkUI_TAbsSpinner_getCount_0"); @@ -689,6 +683,19 @@ public class AndroidAll param_self_AbsSpinner.setAdapter(lSpinnerAdapter_1); MyAndroidPipesComm.SendResult(); break; + // method void setSelection(int position); overload; + case amkUI_TAbsSpinner_setSelection_2: + DebugOut("amkUI_TAbsSpinner_setSelection_2"); + // Self + lInt = MyAndroidPipesComm.GetInt(); + param_self_AbsSpinner = (AbsSpinner) ViewElements.get(lInt); + // params + lInt = MyAndroidPipesComm.GetInt(); + lint_1 = lInt; + // + param_self_AbsSpinner.setSelection(lint_1); + MyAndroidPipesComm.SendResult(); + break; case amkUI_TSpinner_Create_0: DebugOut("amkUI_TSpinner_Create_0"); ViewElements.add(new Spinner(activity)); diff --git a/examples/androidlcl/mainform.lfm b/examples/androidlcl/mainform.lfm index 7604fb422..a06e80bea 100644 --- a/examples/androidlcl/mainform.lfm +++ b/examples/androidlcl/mainform.lfm @@ -62,4 +62,13 @@ object Form2: TForm2 TabOrder = 5 Text = 'Edit2' end + object Button2: TButton + Left = 35 + Height = 25 + Top = 186 + Width = 75 + Caption = 'InputBox' + OnClick = Button2Click + TabOrder = 6 + end end diff --git a/examples/androidlcl/mainform.pas b/examples/androidlcl/mainform.pas index b0d531d24..effd3c292 100644 --- a/examples/androidlcl/mainform.pas +++ b/examples/androidlcl/mainform.pas @@ -14,12 +14,14 @@ type TForm2 = class(TForm) Button1: TButton; + Button2: TButton; CheckBox1: TCheckBox; ComboBox1: TComboBox; Edit1: TEdit; Edit2: TEdit; StaticText1: TStaticText; procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); private { private declarations } public @@ -45,13 +47,19 @@ begin if CheckBox1.Checked then lChecked := 'True' else lChecked := 'False'; + {$ifdef LCLAndroid} vAndroidPipesComm.Log('3'); + {$endif} lEdit1Text := Edit1.Text; + {$ifdef LCLAndroid} vAndroidPipesComm.Log('4'); + {$endif} lComboBox := IntToStr(ComboBox1.ItemIndex); + {$ifdef LCLAndroid} vAndroidPipesComm.Log('5'); + {$endif} Edit2.Text := 'Edit1.Text='+lEdit1Text+LineEnding+ @@ -62,6 +70,11 @@ begin Caption := lEdit1Text; end; +procedure TForm2.Button2Click(Sender: TObject); +begin + InputBox('Caption', 'Prompt', 'Default'); +end; + initialization {$I mainform.lrs}