我试着勒芒Monodroid!我尝试重写Java代码到C#并遇到一些问题:我不明白如何使用Runnable.这是Java中的代码,我不能转换为C#:
public class RunActivity extends Activity implements OnClickListener
{
...
private Handler mHandler;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.run);
...
mHandler = new Handler();
mHandler.postDelayed(mUpdateGeneration, 1000);
}
private Runnable mUpdateGeneration = new Runnable()
{
public void run()
{
mAdapter.next();
mLifeGrid.setAdapter(mAdapter);
mHandler.postDelayed(mUpdateGeneration, 1000);
}
};
...
Run Code Online (Sandbox Code Playgroud)
你能解释一下我如何编写这段代码并使用Runnable吗?此Runnable用于更新gridview适配器并在后台从适配器加载数据到gridview.如果我在主线程中尝试更新适配器?像这样(C#代码):
mAdapter.next()
mLifeGrid.Adapter = mAdapter;
Thread.Sleep(1000);
Run Code Online (Sandbox Code Playgroud)
活动停滞不前.如果我不能使用Runnable,我怎样才能在新线程中实现适配器和gridview的更新?如果我使用C#线程,就像这样:
...
Thread th = new Thread(new ThreadStart(mUpdatGeneration));
th.Start();
}
public void mUpdateGeneration()
{
mAdapter.next()
mLifeGrid.Adapter = mAdapter;
Thread.Sleep(1000);
}
Run Code Online (Sandbox Code Playgroud)
它会生成错误"System.NullReferenceException"
感谢所有人的帮助!PS抱歉我的英文:)
所以我正在尝试创建一个文件,我得到System.UnauthorizedAccessException:拒绝访问路径"/ DownloadJitters".我不确定它是否是权限(我已经尝试过写入外部存储,但是没有用)或其他东西.此外,我正在试图找出一个写这些文件的好地方,因为我希望它们不容易找到.有任何想法吗?这是代码:
public void favouriteList(MainActivity av, Ordering o, string favouriteName, string totalCost, JittersListView jlv)
{
//Checks Directory exists
if (File.Exists(Android.OS.Environment.DirectoryDownloads + "/Jitters/FavouritesListAdded.txt") == false)
{
Directory.CreateDirectory(Android.OS.Environment.DirectoryDownloads + "Jitters/FavouriteList/");
File.Create(Android.OS.Environment.DirectoryDownloads + "/Jitters/FavouritesListAdded.txt");
}
if (File.Exists(Android.OS.Environment.DirectoryDownloads + "Jitters/FavouriteList/" + favouriteName + ".txt") == false)
{
var fav = File.Create(Android.OS.Environment.DirectoryDownloads + "Jitters/FavouriteList/" + favouriteName + ".txt");
fav.Close();
string file = Android.OS.Environment.DirectoryDownloads + "Jitters/FavouriteList/" + favouriteName + ".txt";
string added = null;
int current = 0;
while (true)
{
if (current < jlv.Count)
{ …Run Code Online (Sandbox Code Playgroud) 我们有一个Android应用程序,并希望为跨平台重新创建它.
Xamarin原生和形式的事实是什么?
本机的优点是,我们可以重用所有的xml布局,而我们必须在XAML或XIB中重新创建iOS视图?
什么是真正的阻挡者?
我正在尝试为Android com.adobe.creativesdk.image库生成Xamarin绑定
问题是这个库包含20个引用,这些引用肯定包含更多.我必须浏览整个树并提取所有引用以将它们添加到绑定项目中.
肯定必须有一个更简单的方法来做到这一点.有人告诉我,我可以使用Android Studio创建一个包含所有引用的包AAR,但我不确定要使其工作的步骤.一些参考文献也是AAR.
你能否请我通过正确的方法让这个绑定工作?
Xamarin具有这是在解释GCM(谷歌云通讯)的预定义的支持https://developer.xamarin.com/guides/cross-platform/application_fundamentals/notifications/android/remote_notifications_in_android/
目前谷歌从GCM迁移到FCM(Firebase云消息传递)是否与Xamarin一起使用相同的指令,或者还有其他任何文档用于将FCM与Xamarin集成?
Firebase中提供的所有功能是否都可以在Xamarin App中使用?
xamarin.android firebase xamarin firebase-cloud-messaging firebase-notifications
我很难在Xamarin Studio中编译我的Android应用程序.出现的错误如下:
找不到与给定名称attr"colorPrimary"匹配的资源
哪个引用我的styles.xml:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="@android:style/Theme.Material.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<!--item name="colorPrimaryDark">@color/colorPrimaryDark</item-->
<!--item name="colorAccent">@color/colorAccent</item-->
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
在线发现的通常建议是将SDK版本设置为21或更高版本.但我已经尝试过了:
错误仍然存在:-(是否还需要其他设置才能使其工作?
我们如何在Xamarin中添加拖放功能..
经过大量的谷歌搜索后,我找到了以下关于xamarin拖放的官方链接..
https://blog.xamarin.com/android-tricks-supporting-drag-and-drop-in-an-app/
但它只使用Android本机代码.
我的问题:
在Xamarin中,是否可以在没有本机代码的情况下实现拖放功能?
如果回答 - 否 - >我们如何实现所有平台的拖放监听?
我搜索谷歌和官方论坛,没有发现..有人帮助我..谢谢..
android cross-platform xamarin.android xamarin xamarin.forms
我正在尝试为Zendesk库创建绑定,但我遇到了一个问题.
Zendesk Belvedere库(belvedere-1.0.2.1.aar)在其清单文件中包含一个文件提供程序:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...
...
<application>
<provider
android:name="com.zendesk.belvedere.BelvedereFileProvider"
android:authorities="${applicationId}.belvedere.attachments"
android:exported="false"
android:grantUriPermissions="true" >
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/belvedere_attachment_storage" />
</provider>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
当Gradle用作构建工具时,它会将其放在APK文件中,${applicationId}.belvedere.attachments并com.your_package_name_here.belvedere.attachments在合并的清单文件中替换它.没关系.
但是,Xamarin以不同的方式处理它.这是我在最终APK的清单中找到的内容:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...
...
<application
...
...
<provider
android:name="com.zendesk.belvedere.BelvedereFileProvider"
android:exported="false"
android:authorities="dollar_openBracket_applicationId_closeBracket"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/belvedere_attachment_storage" />
</provider>
...
...
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
显然,dollar_openBracket_applicationId_closeBracket不是我需要的.
似乎一切正常,但是不可能安装几个使用这些绑定的Xamarin应用程序,因为所有这些应用程序都会有相同权限的冲突提供程序(并且用户会收到INSTALL_FAILED_CONFLICTING_PROVIDER错误).
是否有办法改变dollar_openBracket_applicationId_closeBracket清单?
编辑:显示问题的小样本:https://gitlab.com/lassana/ZendeskXamarin/
我的应用程序存在问题,不允许到 x 的明文 HTTP 流量。
我已经尝试将 android:usesCleartextTraffic="true" 放入我的清单中。但我想将“android:usesCleartextTraffic”标志更改为“false”以防止发送未加密的流量。
怎么解决这个问题呢?
就像在Android Studio中一样,我想知道是否有机会让Xamarin Studio同时在多个设备/模拟器中运行应用程序.
我已将此问题作为Xamarin bugzilla上的功能请求发布. https://bugzilla.xamarin.com/show_bug.cgi?id=39356
xamarin.android ×10
xamarin ×8
android ×5
c# ×2
cleartext ×1
firebase ×1
http ×1
https ×1
runnable ×1
xamarin.ios ×1