diff --git a/examples/androidlcl/android/src/com/pascal/androidlcl/AndroidAll.java b/examples/androidlcl/android/src/com/pascal/androidlcl/AndroidAll.java index c7058d03f..9da38cd11 100644 --- a/examples/androidlcl/android/src/com/pascal/androidlcl/AndroidAll.java +++ b/examples/androidlcl/android/src/com/pascal/androidlcl/AndroidAll.java @@ -67,6 +67,7 @@ public class AndroidAll static final int amkUI_TTextView_OnClickListener_Start = 0x0010A003; static final int amkUI_TTextView_OnClickListener_Finished = 0x0010A004; static final int amkUI_TTextView_setTextSize = 0x0010A005; + static final int amkUI_TTextView_getText = 0x0010A006; // EditText static final int amkUI_TEditText_Create = 0x0010B000; static final int amkUI_TEditText_setText = 0x0010B001; @@ -145,6 +146,7 @@ public class AndroidAll float lResult_float; int lResult_int; boolean lResult_boolean; + CharSequence lResult_CharSequence; Display lResult_Display; switch (Buffer) @@ -396,6 +398,17 @@ public class AndroidAll param_self_TextView.setTextSize(lint_1, lfloat_2); MyAndroidPipesComm.SendResult(); break; + // method CharSequence getText() + case amkUI_TTextView_getText: + DebugOut("amkUI_TTextView_getText"); + // Self + lInt = MyAndroidPipesComm.GetInt(); + param_self_TextView = (TextView) ViewElements.get(lInt); + // params + // + lResult_CharSequence = param_self_TextView.getText(); + MyAndroidPipesComm.SendStringResult(lResult_CharSequence); + break; case amkUI_TEditText_Create: DebugOut("amkUI_TEditText_Create"); ViewElements.add(new EditText(activity)); @@ -598,7 +611,6 @@ public class AndroidAll DebugOut("amkUI_TArrayAdapter_String__Create"); lint_1 = MyAndroidPipesComm.GetInt(); ViewElements.add(new ArrayAdapter(activity, lint_1)); - DebugOut("Result = " + (ViewElements.size() - 1)); MyAndroidPipesComm.SendIntResult(ViewElements.size() - 1); break; // method void add(String aobject) @@ -619,7 +631,6 @@ public class AndroidAll DebugOut("amkUI_TArrayAdapter_String__clear"); // Self lInt = MyAndroidPipesComm.GetInt(); - DebugOut("lInt = " + lInt); param_self_ArrayAdapter_String_ = (ArrayAdapter) ViewElements.get(lInt); // params // @@ -631,7 +642,6 @@ public class AndroidAll DebugOut("amkUI_TArrayAdapter_String__insert"); // Self lInt = MyAndroidPipesComm.GetInt(); - DebugOut("lInt = " + lInt); param_self_ArrayAdapter_String_ = (ArrayAdapter) ViewElements.get(lInt); // params lInt = MyAndroidPipesComm.GetInt(); diff --git a/examples/androidlcl/android/src/com/pascal/androidlcl/AndroidPipesComm.java b/examples/androidlcl/android/src/com/pascal/androidlcl/AndroidPipesComm.java index 78809ce2e..2aff55877 100644 --- a/examples/androidlcl/android/src/com/pascal/androidlcl/AndroidPipesComm.java +++ b/examples/androidlcl/android/src/com/pascal/androidlcl/AndroidPipesComm.java @@ -23,9 +23,10 @@ public class AndroidPipesComm int lSubtype = 0; // Android Message Kind - static byte amkFloatResult = 103; - static byte amkIntResult = 102; - static byte amkResult = 101; + static byte amkStringResult = 14; + static byte amkFloatResult = 13; + static byte amkIntResult = 12; + static byte amkResult = 11; static byte amkActivityCallback = 0; static byte amkLog = 1; static byte amkUICommand = 2; @@ -110,12 +111,7 @@ public class AndroidPipesComm else if (Buffer == amkLog) { DebugOut("amkLog"); - int lInt = GetInt(); // Length - char[] lChars = new char[lInt]; - for (int i = 0; i < lInt; i++) - { - lChars[i] = (char) GetByte(); - } + char[] lChars = GetString(); DebugOut(new String(lChars)); } else if (Buffer == amkUICommand) @@ -217,6 +213,26 @@ public class AndroidPipesComm return -1; } + public char[] GetString() + { + char[] lChars; + try + { + int lInt = reader.readInt(); // Length + lChars = new char[lInt]; + for (int i = 0; i < lInt; i++) + { + lChars[i] = (char) reader.readByte(); + } + return lChars; + } + catch (IOException e) + { + ErrorOut("[GetString] IOException=" + e.getMessage()); + } + return new char[0]; + } + // Sending results public void SendResult() @@ -258,6 +274,24 @@ public class AndroidPipesComm } } + public void SendStringResult(CharSequence Result) + { + try + { + writer.writeByte(amkStringResult); + int lInt = Result.length(); + writer.writeInt(lInt); // Length + for (int i = 0; i < lInt; i++) + { + writer.writeByte(Result.charAt(i)); + } + } + catch (IOException e) + { + ErrorOut("[SendStringResult] IOException=" + e.getMessage()); + } + } + // Sending data // Convenience routine, uses SendIntResult diff --git a/examples/androidlcl/androidlcltest.lpi b/examples/androidlcl/androidlcltest.lpi index b51108f7e..a9616c4f5 100644 --- a/examples/androidlcl/androidlcltest.lpi +++ b/examples/androidlcl/androidlcltest.lpi @@ -17,7 +17,7 @@ - + @@ -75,6 +75,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/androidlcl/mainform.lfm b/examples/androidlcl/mainform.lfm index 84429bb42..7604fb422 100644 --- a/examples/androidlcl/mainform.lfm +++ b/examples/androidlcl/mainform.lfm @@ -13,6 +13,7 @@ object Form2: TForm2 Top = 35 Width = 87 Caption = 'Button1' + OnClick = Button1Click TabOrder = 0 end object CheckBox1: TCheckBox @@ -53,4 +54,12 @@ object Form2: TForm2 TabOrder = 4 Text = 'ComboBox1' end + object Edit2: TEdit + Left = 147 + Height = 25 + Top = 144 + Width = 80 + TabOrder = 5 + Text = 'Edit2' + end end diff --git a/examples/androidlcl/mainform.pas b/examples/androidlcl/mainform.pas index cca3e23a3..6225a9da4 100644 --- a/examples/androidlcl/mainform.pas +++ b/examples/androidlcl/mainform.pas @@ -17,7 +17,9 @@ type CheckBox1: TCheckBox; ComboBox1: TComboBox; Edit1: TEdit; + Edit2: TEdit; StaticText1: TStaticText; + procedure Button1Click(Sender: TObject); private { private declarations } public @@ -29,6 +31,35 @@ var implementation +{$ifdef LCLAndroid} +uses androidpipescomm; +{$endif} + +{ TForm2 } + +procedure TForm2.Button1Click(Sender: TObject); +var + lChecked, lEdit1Text: String; + lComboBox: String; +begin + if CheckBox1.Checked then lChecked := 'True' + else lChecked := 'False'; + + vAndroidPipesComm.Log('3'); + lEdit1Text := Edit1.Text; + + vAndroidPipesComm.Log('4'); + lComboBox := IntToStr(ComboBox1.ItemIndex); + + vAndroidPipesComm.Log('5'); + + Edit2.Text := + 'Edit1.Text='+lEdit1Text+LineEnding+ + 'Caption='+Caption+LineEnding+ + 'Checked?='+lChecked+LineEnding+ + 'ComboBox='+lComboBox; +end; + initialization {$I mainform.lrs}