以下实例演示一个函数获取字符串参数并返回一个带有反转字符的新字符串。
call()
函数使用
ctx
参数从通过其调用函数的上下文中获取一个标识符字符串。
package com.example;
import com.adobe.fre.FREContext;
import com.adobe.fre.FREFunction;
import com.adobe.fre.FREInvalidObjectException;
import com.adobe.fre.FREObject;
import com.adobe.fre.FRETypeMismatchException;
import com.adobe.fre.FREWrongThreadException;
import android.util.Log;
public class ReverseStringFunction implements FREFunction {
public static final String NAME = "reverseString";
private String tag;
public FREObject call(FREContext arg0, FREObject[] arg1) {
DataExchangeContext ctx = (DataExchangeContext) arg0;
tag = ctx.getIdentifier() + "." + NAME;
Log.i( tag, "Invoked " + NAME );
FREObject returnValue = null;
try {
String value = arg1[0].getAsString();
value = reverse( value );
returnValue = FREObject.newObject( value );//Invert the received value
} catch (IllegalStateException e) {
Log.d(tag, e.getMessage());
e.printStackTrace();
} catch (FRETypeMismatchException e) {
Log.d(tag, e.getMessage());
e.printStackTrace();
} catch (FREInvalidObjectException e) {
Log.d(tag, e.getMessage());
e.printStackTrace();
} catch (FREWrongThreadException e) {
Log.d(tag, e.getMessage());
e.printStackTrace();
}
return returnValue;
}
private String reverse( String source ) {
int i, len = source.length();
StringBuffer dest = new StringBuffer(len);
for (i = (len - 1); i >= 0; i--)
dest.append(source.charAt(i));
return dest.toString();
}
}