美文网首页
unity写android插件时的回调接口处理AndroidJa

unity写android插件时的回调接口处理AndroidJa

作者: Walk_In_Jar | 来源:发表于2019-05-23 12:39 被阅读0次

Description

This class can be used to implement any java interface. Any java vm method invocation matching the interface on the proxy object will automatically be passed to the c# implementation.
// Opens an android date picker dialog and grabs the result using a callback.

using UnityEngine;
using System;

class ExampleClass : [MonoBehaviour](https://docs.unity3d.com/ScriptReference/MonoBehaviour.html)
{
    private static DateTime selectedDate = DateTime.Now;

    class DateCallback : [AndroidJavaProxy](https://docs.unity3d.com/ScriptReference/AndroidJavaProxy.html)
    {
        public DateCallback() : base("android.app.DatePickerDialog$OnDateSetListener") {}
        void onDateSet([AndroidJavaObject](https://docs.unity3d.com/ScriptReference/AndroidJavaObject.html) view, int year, int monthOfYear, int dayOfMonth)
        {
            selectedDate = new DateTime(year, monthOfYear + 1, dayOfMonth);
        }
    }

    void OnGUI()
    {
        if ([GUI.Button](https://docs.unity3d.com/ScriptReference/GUI.Button.html)(new [Rect](https://docs.unity3d.com/ScriptReference/Rect.html)(15, 15, 450, 75), string.Format("{0:yyyy-MM-dd}", selectedDate)))
        {
            [AndroidJavaClass](https://docs.unity3d.com/ScriptReference/AndroidJavaClass.html) activity = new [AndroidJavaClass](https://docs.unity3d.com/ScriptReference/AndroidJavaClass.html)("com.unity3d.player.UnityPlayer").GetStatic<[AndroidJavaClass](https://docs.unity3d.com/ScriptReference/AndroidJavaClass.html)>("currentActivity");
            activity.Call("runOnUiThread", new [AndroidJavaRunnable](https://docs.unity3d.com/ScriptReference/AndroidJavaRunnable.html)(() =>
            {
                new [AndroidJavaObject](https://docs.unity3d.com/ScriptReference/AndroidJavaObject.html)("android.app.DatePickerDialog", activity, new DateCallback(), selectedDate.Year, selectedDate.Month - 1, selectedDate.Day).Call("show");
            }));
        }
    }
}</pre>

怎么将日期选择返回到一个text呢

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class GetTimeClass
{
    private static DateTime curDate = DateTime.Now;


    public delegate void TimeSelected(string time);
    static  TimeSelected callback;
    class DateCallback : AndroidJavaProxy
    {
        public DateCallback() : base("android.app.DatePickerDialog$OnDateSetListener"){}
        void onDateSet(AndroidJavaObject view, int year, int monthOfYear, int dayOfMonth)
        {
            //curDate = new DateTime(year, monthOfYear + 1, dayOfMonth);

            callback(year+"/"+(monthOfYear + 1) +"/"+ dayOfMonth);
            callback = null;
        }
    }
 
    public static void GetTime(TimeSelected cb)
    {
        callback = cb;
        AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");

        activity.Call("runOnUiThread", new AndroidJavaRunnable(() =>
        {
            new AndroidJavaObject("android.app.DatePickerDialog", activity, new DateCallback(), curDate.Year, curDate.Month - 1, curDate.Day).Call("show");
        }));
       
    }
   
}

调用

    GetTimeClass.GetTime((time) => {

            title.text = time;
        });

相关文章

  • unity写android插件时的回调接口处理AndroidJa

    Description This class can be used to implement any java ...

  • Android创建阻塞式模态对话框Dialog-Loop的实现方

    由于Android的Dialog是非阻塞的方式,每次弹出一个输入框或确认操作框都需要实现回调接口和处理回调方法。某...

  • Unity Android Plugin 教程-翻译

    目录Unity Android 插件教程(1/3) - 基本原理Unity Android 插件教程(1/3) -...

  • android回调接口

    在很久以前,公司让实现一个功能,就是美团中的选券。之后根据选择的券。返回券对应的信息。当时刚入行,java基础薄弱...

  • Android接口回调

    接口在Android编码中是比较抽象的,本人在学习的过程中也有过困扰,在网上找到一篇不错的文章,在这里拿来自己进一...

  • Android接口回调

    之前对接口回调一直有点模糊,会写但是理解的不透彻,今天记录一下自己理解的回调是什么。 接口回调是什么? 接口回调是...

  • Android 回调接口

    原文:https://blog.csdn.net/uyy203/article/details/54444031

  • Android接口回调

    需求 用户点击按钮,触发执行耗时操作。程序开启子线程,然后在子线程中执行耗时操作。当耗时操作执行完毕后,执行回调函...

  • Android接口回调

    Android接口回调,见的最多的就是系统的点击事件的回调方法:OnClick,使用方法如下。 OnClickLi...

  • Android 接口回调

    版权所有,转载注明 回调方法一直是弱项,记录一下以后免得翻车。如有问题还请大佬们在评论出指出,谢谢。 1.在发送界...

网友评论

      本文标题:unity写android插件时的回调接口处理AndroidJa

      本文链接:https://www.haomeiwen.com/subject/wgyvzqtx.html