Android jni反射生成TextView控件

来源:互联网 发布:格式化工厂 mac 编辑:程序博客网 时间:2024/06/10 17:56
1.在Activity里面声明一个native接口,生成.h头文件等过程略,参考其他文档;

public native Object getTextViewFromJni();

2.在.cpp文件实现如下函数:

JNIEXPORT jobject JNICALL Java_com_cjl_helloworld_MainActivity_getTextViewFromJni(JNIEnv *env, jobject jcontext){
    //找到TextView的字节码    jclass cls_textview = env->FindClass("android/widget/TextView");    //获取TextView的构造方法id    jmethodID txt_con_id = env->GetMethodID(cls_textview,"<init>", "(Landroid/content/Context;)V");
  //new 一个TextView出来    jobject jtextview =env->NewObject(cls_textview,txt_con_id,jcontext);
 //返回   return jtextview;}
3.在Activity中调用:
public void initTextView(){    mBaseLayout = (LinearLayout) this.findViewById(R.id.base_layout);  // TextView textView = new TextView(this);    TextView textView=(TextView) getTextViewFromJni();    textView.setText("Hello TextView");    mBaseLayout.addView(textView);}

0 0
原创粉丝点击