Android Listener CallBack Proplemi

FireMonkey ve Mobil uygulama (iOS, Android, Windows Phone) ile ilgili sorularınızı bu foruma sorabilirsiniz.
Cevapla
mab88
Üye
Mesajlar: 37
Kayıt: 01 Eki 2014 05:37

Android Listener CallBack Proplemi

Mesaj gönderen mab88 »

Arkadaşlar şu şekilde bir sıkıntım var java dosayasına istediğim herşeyi yaptırabiliyorum fakat listener edip callback yaptığımda hatta SetWebViewListener dediğimde projem kapanıyor kodlar aşağıdadır yardımcı olabilecek varsa çok sevinirim.

Şimdiden teşekkür ederim.

Kod: Tümünü seç

package com.sample.testclassjava;
 
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.ContextWrapper;
import android.widget.Toast;
import android.graphics.Bitmap;
import android.net.http.SslError;
import android.os.Message;
import android.view.KeyEvent;
import android.webkit.*;
 
 
public class TestClass  {
	private TestListener  mListener;
	
	public interface TestListener {
		public abstract void ontest(String s);
	}
	
	public void SetWebViewListener(TestListener ontestlistener)
	{
		mListener = ontestlistener;
	}
	
}

Kod: Tümünü seç

unit com.sample.testclass.TestClass;
 
interface
 
uses
  AndroidAPI.JNIBridge,
  Androidapi.JNI.JavaTypes,
  Androidapi.JNI.GraphicsContentViewText,
  FMX.Helpers.Android,
  Androidapi.Helpers,
  Androidapi.Jni.App,
  FMX.Dialogs,
  FMX.Advertising.Android;
 
type
  JTestObject = interface;
  JTestListener=  interface;
 
 
  JTestListenerClass = interface( IJavaClass )
    ['{9244FD77-89CB-46F4-9160-D5B2C4F1412C}']
  end;
 
  [JavaSignature( 'com/sample/testclassjava/TestClass/TestListener')]
  JTestListener = interface( IJavaInstance )
    ['{8A06E016-9C95-4EF5-B133-CED8E3A9A864}']
    procedure ontest(s: JString); cdecl;
  end;
 
  TJTestListener = class( TJavaGenericImport<JTestListenerClass, JTestListener> )
  end;
 
 
  JTestObjectClass = interface(JObjectClass)
    ['{BDDD23C7-4B3D-4A34-9867-6F579590E6FF}']
    function init : JTestObject; cdecl;
    procedure SetWebViewListener( listener: JTestListener ); cdecl;
  end;
 
  [JavaSignature('com/sample/testclassjava/TestClass')]
  JTestObject = interface(JObject)
    ['{FA34804C-B95A-4145-B8BE-13E9B5A88D37}']
    function init : JTestObject; cdecl;
    procedure SetWebViewListener( listener: JTestListener ); cdecl;
  end;
 
  TJTestObject = class(TJavaGenericImport<JTestObjectClass, JTestObject>)
  end;
 
 
  TOntestListener = class( TJavaLocal, JTestListener )
  private
  public
    procedure ontest(s: JString); cdecl;
  end;
 
 
implementation
 
 
{ TOntestListener }
procedure TOntestListener.ontest(s: JString);
begin
end;
 
 
end.


Kod: Tümünü seç

procedure TForm2.Button1Click(Sender: TObject);
var
  TestClass: JTestObject;
  TestClassListener: TOntestListener;
begin
  CallInUIThread(
    procedure
    begin
      TestClass :=TJTestObject.javaclass.init;
      TestClassListener :=TOntestListener.create;
      TestClass.SetWebViewListener(TestClassListener);
    end);
end;
Cevapla