如何在按下按钮时显示 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/