android 复制,粘贴

本文介绍了在Android中处理复制和粘贴功能的方法,针对SDK 11及以上版本的变化,提供了使用`ClipboardManager`的示例代码。通过导入`android.content.ClipboardManager`并设置或获取`ClipData`来实现复制粘贴操作。同时展示了如何在C++中调用Java非静态函数进行相关操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android 复制,粘贴流程很简单, 就是操作ClipboardManager写入或者获得数据,

需要导入 import android.text.ClipboardManager;

//java代码

     public void copyMsg()
    {
        ClipboardManager mClipboardManager = (ClipboardManager)instance.getSystemService(CLIPBOARD_SERVICE);
        mClipboardManager.setText("copy is ok");
    }

   public  String getClipBoardContent()
    {
          ClipboardManager clipboardManager=(ClipboardManager)this.getSystemService(Context.CLIPBOARD_SERVICE);
               
          tempStr=clipboardManager.getText().toString().trim();
                 
         return tempStr;
    }

但是android sdk11后就被废弃了,需要引用 import android.content.ClipboardManager;

 

ClipboardManager clipboardManager = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);  

clipboardManager.setPrimaryClip(ClipData.newPlainText(null, "内容"));  

if (clipboardManager.hasPrimaryClip()){  

    clipboardManager.getPrimaryClip().getItemAt(0).getText();  

}  

//这里是c++调用java非静态函数,所需要返回的java类的对象

public static Object get_Instance()
    {
        return this;
    }

//c++代码

//复制 这里调用java 静态函数

void HelloWorld::copy()

{

#if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

    JniMethodInfo method;

    bool isHave=JniHelper::getStaticMethodInfo(method,"org/cocos2dx/cpp/AppActivity","clip","()V");

    if(isHave)

    {

        method.env->CallStaticVoidMethod(method.classID,method.methodID);

    }

    

#endif

}

//粘贴 这里调用java非静态函数

std::string HelloWorld::paste()

{

    const char* msg = "";

#if(CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

    JniMethodInfo method;

    bool isHave=JniHelper::getStaticMethodInfo(method,"org/cocos2dx/cpp/AppActivity","get_Instance","()Ljava/lang/Object;");

    jobject jobj;

    if(isHave)

    {

        jobj=method.env->CallStaticObjectMethod(method.classID,method.methodID);

    }

     JniMethodInfo methodInfo;

bool isHave2= JniHelper::getMethodInfo(methodInfo,"org/cocos2dx/cpp/AppActivity","getClipBoardContent","()Ljava/lang/String;");

    if(isHave2)

    {

        //jstring str= method.env->(jstring)CallStaticObjectMethod(method.classID,method.methodID);

        jstring  pasteMsg= (jstring)methodInfo.env->CallObjectMethod(jobj,methodInfo.methodID);

         if(pasteMsg==NULL)

         {

            return "";

         }

        msg = (methodInfo.env)->GetStringUTFChars(pasteMsg, NULL);

        return msg;

    }

#endif

     return msg;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值