libgdx与Robovm绑定的一些方法

1.在IOS中绑定类

@interface ClassName : ExtendedClassName<ImplementedInterfaceName>

那么在java中就应该是:

@NativeClass
public class GADBannerView extends UIView {

}

这里一般形式是:

@NativeClass
public class GADBannerView extends NSObject {

}

2.在IOS中绑定方法

- (void)loadRequest:(GADRequest *)request;

在java中

@Method(selector = "loadRequest:")//必须和IOS里面的方法名一样 不然无法找到
public native void loadRequest(GADRequest request);//这里方法名可以任意写 但是参数必须一样

如果有多个参数的方法呢?

- (void)setLocationWithLatitude:(CGFloat)latitude longitude:(CGFloat)longitude accuracy:(CGFloat)accuracyInMeters;

在java写法是这样的:

@Method(selector = "setLocationWithLatitude:longitude:accuracy:")
public native void setLocation(float latitude, float longitude, float accuracyInMeters);

3.在IOS中绑定构造方法

- (id)initWithAdSize:(GADAdSize)size;

那么在java中实现:

@Method(selector = "initWithAdSize:")
private native @Pointer long init(GADAdSize size);//构造方法需要值,因为GADAdSize实际上是long类型

这里的方法写成私有的,因为不是任何人都可以调用的,所以还得写个java里的构造方法

public GADBannerView(GADAdSize size) {
    super((SkipInit)null);
    initObject(init(size));
}

必须这样写,不然会被java调用两次

4.在IOS中绑定成员变量

在IOS中有很多很简便的写法,可以让开发者少些很多代码

@property(nonatomic, copy) NSString *adUnitID;

property这个意思是OC会自动实现getter和setter 不用手动实现,那么我们知道他的意思后就很好绑定了,和绑定方法一样一样的

@Property(selector = "adUnitID")
public native String getAdUnitID ();

@Property(selector = "setAdUnitID:")
public native void setAdUnitID (String id);

注意:并不是所有属性都有getter和setter的 有些只有getter比如:

@property(nonatomic, readonly) BOOL hasAutoRefreshed;

还有一种写法在绑定的时候必须强引用,不然程序会报错:

@property(nonatomic, assign) NSObject<GADBannerViewDelegate> *delegate

在绑定的时候必须这样写:

@Property(selector = "delegate")
public native GADBannerViewDelegate getDelegate();

@Property(selector = "setDelegate:", strongRef = true)
public native void setDelegate(GADBannerViewDelegate delegate);

5.在IOS中绑定枚举类型

typedef NS_ENUM(NSInteger, GADGender) {
  kGADGenderUnknown,  ///< Unknown gender.
  kGADGenderMale,     ///< Male gender.
  kGADGenderFemale    ///< Female gender.
};

在java中这样写:

typedef enum {
  kGADGenderUnknown,  ///< Unknown gender.
  kGADGenderMale,     ///< Male gender.
  kGADGenderFemale    ///< Female gender.
} GADGender;

以上写法精简自:https://github.com/BlueRiverInteractive/robovm-ios-bindings

libgdx与Robovm绑定的一些方法

时间: 2024-12-21 12:16:29

libgdx与Robovm绑定的一些方法的相关文章

libgdx与Robovm绑定的坑

https://github.com/BlueRiverInteractive/robovm-ios-bindings

GridView等表格模板列绑定数据的方法

//绑定GridView每一行中的CheckBoxList protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { CheckBoxList cbl = (CheckBoxList)e.Row.FindControl("ckbCheckBox"); if (cbl != null) {

JavaScript中,有三种常用的绑定事件的方法

要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定事件处理函数.所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称. 在JavaScript中,有三种常用的绑定事件的方法: 在DOM元素中直接绑定: 在JavaScript代码中绑定: 绑定事件监听函数. 一. 在DOM元素中直接绑定 这里的DOM元素,可以理解为HTML标签.JavaScript支持在标签中直接绑定事件,语法为:    onXXX="JavaScript Code" 其中:

SpringMVC3,使用RequestMappint的Param参数,实现一个url绑定多个方法

SpringMVC中,默认不能把多个相同的url绑定到同一个方法.如果需要绑定,需要增加param参数,而且值要不同. 我自己没有这个需求,或者就是有需求,我也想到的是使用不同的url. 项目中有少部分这样的需求,于是就写个demo. @RequestMapping(value="/test",params="method=method1")public void method1(){ System.out.println("method1");

JavaScript绑定事件的方法[3种]

要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑定"事件处理函数".所谓事件处理函数,就是处理用户操作的函数,不同的操作对应不同的名称. 在JavaScript中,有三种常用的绑定事件的方法: 在DOM元素中直接绑定: 在JavaScript代码中绑定: 绑定事件监听函数. 一. 在DOM元素中直接绑定 一. 在DOM元素中直接绑定这里的DOM元素,可以理解为HTML标签.JavaScript支持在标签中直接绑定事件,语法为:    onXXX="

201507221403_《backbone之一——新建模型和集合、实例化模型、模型上监听事件的方法、模型设置和获取后台数据、配置理由方法、视图绑定事件的方法、绑定模型等》

一 . 新建 var model_1 = new Backbone.Model({'name':'hello'}); var model_2 = new Backbone.Model({'name':'hi'}); var models = new Backbone.Collection(); models.add( model_1 ); models.add( model_2 ); alert( JSON.stringify(models) ); 二. 实例化模型 var M = Backbo

elementui command绑定变量对象方法

command绑定变量对象方法 使用v-bind : command绑定 简写 :command 原文地址:https://www.cnblogs.com/SimonHu1993/p/9155645.html

Android studio button 按钮 四种绑定事件的方法

package com.geli_2.sujie.sujiegeili2testbutton; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.Toast; public class MainActivity extends AppCompa

绑定到目标方法时出错

突发奇想,浮动面板使用的控件类,在控件类中的有个按钮的响应函数,我想把它做成命令,直接在CAD界面里输入命令调用. 然后,就在命名空间外面填上了 [assembly: CommandClass(typeof(CoscoStruTools.CSTShellExpCtrl))] 又把[CommandMethod("SetFrLineCST")]添加到了按钮响应函数前面. 运行cad,输入命令SetFrLineCST,不好用,提示未知命令? 哦,原来是方法是私有的,把private改成pub