E4A数组扩展(接口+全局模块)
最近用了E4A,发现里面的核心函数太少了,比如数组这一块,还是自己手动一下
接口:数组扩展.java
E4A工程(栗子):数组扩展.e4a
贴代码
接口代码:
/**
* 数组扩展
* @author 小さな手は
*/
package com.e4a.runtime.api;//包名必须固定为这个,不能自己修改
import com.e4a.runtime.annotations.SimpleFunction;
import com.e4a.runtime.annotations.SimpleObject;
import com.e4a.runtime.annotations.UsesPermissions;
import com.e4a.runtime.android.mainActivity;
//java包
import java.util.Arrays;
import java.lang.reflect.Array;
import android.widget.Toast;
@UsesPermissions(permissionNames = "android.permission.INTERNET")//安卓权限标记,如果接口函数中需要额外的安卓权限,可在此填写,多个权限可以用逗号隔开
@SimpleObject
public final class 数组扩展{
@SimpleFunction//导出函数标记
/**
* 将文本数组按一定顺序进行排序
* @param str 欲操作的文本数组
* @return void
*/
public static void 文本数组排序(String[] str){
Arrays.sort(str);
}
@SimpleFunction//导出函数标记
/**
* 返回数组中第一次被寻找文本出现的的位置
* @param str 欲操作的文本数组
* @param searchStr 被寻找的文本
* @return int 数组中第一次被寻找文本出现的的位置,没有返回-1
*/
public static int 数组寻找文本(String[] str,String searchStr){
for(int i = 0; i < str.length;i++){
if(str[i].indexOf(searchStr) != -1){
return i;
}
}
return -1;
}
@SimpleFunction//导出函数标记
/**
* 插入成员
*
* @param obj 数组对象
* @param index 插入位置
* @param addObj 新增的成员
* @return 返回数组
*/
public static Object insertMunber(Object obj,int index,Object addObj){
int i = Array.getLength(obj) + 1;
if (index <= i + 1 && index >= 1){
Object arr = obj;
arr = resetArray(arr,i);
System.arraycopy(obj,0,arr,0,index - 1);
System.arraycopy(obj,index - 1,arr,index,i - index);
Array.set(arr,index - 1,addObj);
return arr;
}
return obj;
}
@SimpleFunction//导出函数标记
/**
* 加入成员
*
* @param obj 数组对象
* @param addObj 新增的成员
* @return 返回数组
*/
public static Object addMunber(Object obj,Object addObj){
return insertMunber(obj,Array.getLength(obj) + 1,addObj);
}
@SimpleFunction//导出函数标记
/**
* 删除成员
*
* @param obj 数组对象
* @param index 删除位置
* @return 返回数组
*/
public static Object removeMunber(Object obj,int index){
int length = Array.getLength(obj) - 1;
Object newobj = Array.newInstance(obj.getClass().getComponentType(),length);
System.arraycopy(obj,0,newobj,0,index - 1);
System.arraycopy(obj,index,newobj,index - 1,length + 1 - index);
return newobj;
}
@SimpleFunction//导出函数标记
/**
* 重定义数组
*
* @param obj 数组对象
* @param length 长度
* @return 返回数组
*/
public static Object resetArray(Object obj,int length){
return Array.newInstance(obj.getClass().getComponentType(),length);
}
}
全局模块代码:
静态 过程 插入成员(传址 数组 为 对象,位置 为 整数型,新成员 为 对象)
数组 = 数组扩展.insertMunber(数组,位置,新成员)
结束 过程
静态 过程 加入成员(传址 数组 为 对象,新成员 为 对象)
数组 = 数组扩展.addMunber(数组,新成员)
结束 过程
静态 过程 删除成员(传址 数组 为 对象,位置 为 整数型)
数组 = 数组扩展.removeMunber(数组,位置)
结束 过程
静态 过程 重定义(传址 数组 为 对象,长度 为 整数型)
数组 = 数组扩展.resetArray(数组,长度)
结束 过程
静态 过程 文本数组排序(传址 数组 为 文本型())
数组扩展.文本数组排序(数组)
结束 过程
静态 函数 数组寻找文本(数组 为 文本型(),被寻找文本 为 文本型) 为 整数型
数组寻找文本 = 数组扩展.数组寻找文本(数组,被寻找文本)
结束 函数