100酱吧 关注:282贴子:2,512
  • 11回复贴,共1

『源码』论c++怎么调用android开发中的Toast

只看楼主收藏回复

效果


IP属地:浙江来自Android客户端1楼2017-04-22 00:04回复
    首先你得
    #include <jni.h>


    IP属地:浙江来自Android客户端2楼2017-04-22 00:06
    回复
      2026-04-24 06:04:41
      广告
      不感兴趣
      开通SVIP免广告
      弄到全局Context
      jobject getContext(JNIEnv *env,JavaVM *vm)
      {
      jclass activityThread = env->FindClass("android/app/ActivityThread");
      jmethodID currentActivityThread = env->GetStaticMethodID(activityThread, "currentActivityThread", "()Landroid/app/ActivityThread;");
      jobject at = env->CallStaticObjectMethod(activityThread, currentActivityThread);
      jmethodID getApplication = env->GetMethodID(activityThread, "getApplication", "()Landroid/app/Application;");
      jobject context = env->CallObjectMethod(at, getApplication);
      return context;
      }


      IP属地:浙江来自Android客户端3楼2017-04-22 00:06
      回复
        Toast主代码
        void toast(JNIEnv *env,JavaVM *vm,char* str,jint time)
        {
        jobject context = getContext(env,vm);
        jclass tclss = env->FindClass("android/widget/Toast");
        jmethodID mid = env->GetStaticMethodID(tclss,"makeText","(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;");
        jobject job = env->CallStaticObjectMethod(tclss,mid,context,env->NewStringUTF(str),time);
        jmethodID showId = env->GetMethodID(tclss,"show","()V");
        env->CallVoidMethod(job,showId);
        }


        IP属地:浙江来自Android客户端4楼2017-04-22 00:07
        回复
          JavaVM通过JNI_OnLoad方法参数可得
          JNIEnv可通过JavaVM指针->GetEnv((void **)&JNIEnv指针, JNI_VERSION_1_6)可得


          IP属地:浙江来自Android客户端5楼2017-04-22 00:09
          回复
            完毕


            IP属地:浙江来自Android客户端6楼2017-04-22 00:09
            回复
              围观


              来自Android客户端7楼2017-04-22 07:48
              回复
                首先你得打开一个项目


                来自Android客户端8楼2017-04-22 10:40
                收起回复
                  2026-04-24 05:58:41
                  广告
                  不感兴趣
                  开通SVIP免广告
                  那么问题来了,内存溢出咋办


                  IP属地:广西来自Android客户端10楼2018-02-06 10:55
                  收起回复