c# - 为 Unity Mobile App 显示 Android Date Picker DIALOGUE

标签 c# android unity-game-engine

如何在按下按钮时显示 native Android 日期选择器 DIALOGUE。我查看了 Unity 文档上的示例 unity docs AndroidJavaProxy但它似乎只用日期填充创建按钮,并没有像它在页面上建议的那样打开日期选择器对话框。在 Samsung Galaxy Note 8 上进行测试。未提供代码,因为它与提供的链接完全相同。

最佳答案

using UnityEngine;
using TMPro;
using System;

public class SelectedDate
{
    public static DateTime date = DateTime.Now;
}
public class DateCallback : AndroidJavaProxy
{
    public DateCallback() : base("android.app.DatePickerDialog$OnDateSetListener") { }

    public void onDateSet(AndroidJavaObject view, int year, int monthOfYear, int dayOfMonth)
    {
        SelectedDate.date = new DateTime(year, monthOfYear + 1, dayOfMonth);
    }
}
public class DatePicker : MonoBehaviour
{
    public TMP_Text startingDateText;
    public TMP_Text goalDateText;
    private AndroidJavaObject activity;
    private DateTime newSelectedStartingDate;
    private DateTime newSelectedGoalDate;

    void PickDate()
    {
        new AndroidJavaObject("android.app.DatePickerDialog", activity, new DateCallback(), SelectedDate.date.Year, SelectedDate.date.Month - 1, SelectedDate.date.Day).Call("show");
    }

    void OnGUI()
    {
        if (GUI.Button(new Rect(10, 10, 450, 100), string.Format("ddd d MMMM, yyyy", SelectedDate.date)))
        {
            activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
            activity.Call("runOnUiThread", new AndroidJavaRunnable(PickDate));
        }
    }
}

这似乎有效,但只能通过 OnGUI 正确执行,它会在 Android 日期选择器对话框关闭后更新。在 Unity UI 中创建按钮并在单击按钮时执行代码不会更新,直到下次单击按钮时才会更新。

关于c# - 为 Unity Mobile App 显示 Android Date Picker DIALOGUE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56711887/

相关文章:

c# - DataBindings.Add 使用 IFormatProvider

c# - Composite C1 中的自定义小部件

Android如何在setBackgroundColor上获得渐变效果

ios - Unity IOS 中的谷歌播放服务错误

ios - 从统一导出项目 : iOS 中隐藏导航项

c# - Visual Basic 相当于 "rectangle a=new a() { width=1; height=2; }"

c# - 在 C++ 中正确返回 uint16_t 数组的方法

android - 错误 : react-native-vector-icons:compileDebugJavaWithJavac'. React-Native

android - Flutter:使用 Cupertino DatePicker 时出现的问题

unity-game-engine - 如何加载不知道 Assets 名称的 Assets 包?