2013-09-18 3 views
3

В Android/Java Я хотел бы сделать это:onActivityResult эквивалент в Delphi XE5?

Intent intent = new Intent(Intent.ACTION_PICK); 
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); 
startActivityForResult(intent, PICK_CONTACT); 

и получить результат в:

@Override public void onActivityResult(int reqCode, int resultCode, Intent data) 

В Delphi У меня есть эквивалент первой части:

Intent := TJIntent.Create; 
Intent.setAction(TJIntent.JavaClass.ACTION_PICK); 
Intent.setType(TJContactsContract_Contacts.JavaClass.CONTENT_TYPE); 
MainActivity.startActivityForResult(Intent,PICK_CONTACT); 

Но при поиске в MainActivity я не вижу обратного вызова «onActivityResult». Я вижу один для JFragment, но, похоже, не нахожусь в нужном месте, чтобы получить его, и я не вижу примеров в примере кода, в Интернете или в исходном коде.

+0

Я вижу несколько записей, заканчивающиеся '' startActivityForResult' в Androidapi.JNI.App.pas'. Я недостаточно осведомлен, чтобы сказать, работает ли кто-нибудь на то, что вам нужно (таким образом, комментарий, а не ответ). Помогите? –

+0

@Ken startActivityForResult - это то, что вы вызываете, чтобы начать свою деятельность. И это прямо в вопросе. Но искатель ищет способ реализовать обратный вызов onActivityResult для получения результата. –

+0

Что такое MainActivity? Является ли это предконсервированной реализацией Деятельности? Вызывает ли он события. Как разработчики Delphi завернули собственный API для Android? Ожидаете ли вы, что вы сами себя вызвали? Или они производят класс, переопределяет все виртуальные onXXX методы и события поверхности для вас? –

ответ

2

В настоящее время вы должны подклассифицировать скомпилированный Java-класс, который действует как точка входа Activity на стороне Java, где вы можете переопределить onActivityResult(). Это довольно беспорядочно и требует де-dexing classes.dex для получения текущего подкласса NativeActivity, который вы должны в свою очередь подкласса. Вы также должны изменить манифест и заменить нормально развернутый класс.dex на новый, в котором есть ваш подкласс. Вы можете почувствовать, что это довольно грязно, поэтому лучше всего удерживать их до тех пор, пока они не добавят крючок для получения результатов деятельности, которые должны скоро появиться, надеюсь ...

+0

Какие-нибудь учебники или примеры этого? – FerretDriver

+0

Есть приложение, которое использует его на моем жестком диске только сейчас, что не является исключительно полезным вкладом. Однако он еще не подходит для общественного потребления, в первую очередь потому, что процесс пользовательской сборки вводит, по какой-либо заметной причине, большое количество FAIL при ротации. Это действительно очень раздражает, и мне еще предстоит преследовать его. Я надеюсь, что он будет пригвожден к моему разговору CodeRage 8, но это зависит от моей разработки проблемы. – blong

+1

На самом деле, проблема с ротацией не связана - это вызвано чем-то другим в приложении. Будет пример внедрения onActivityResult в моей сессии CodeRage 8 17 октября '13. Это лучшее, что я могу предложить сейчас. – blong

1

Это хороший обзор, я не знаю, работает ли он так же, как Intent.

http://www.pclviewer.com/android/androidJNI.html

http://www.pclviewer.com/android/XE5.pdf

+0

В этом разделе рассматривается использование дополнительного скомпилированного Java-кода, который еще не доступен в Android. Таким образом, он объясняет, как импортировать дополнительные библиотеки Java. На самом деле это не означает поиск ответа на результаты Intent/activity. – blong