Tag: android

反应原生android未能加载JS捆绑

我试图在我的Nexus5上运行AwesomeProject(android 5.1.1)。 我能够构build项目并将其安装在设备上。 但是当我运行它,我有一个红色的屏幕说 无法下载JS捆绑。 你忘了启动开发服务器还是连接你的设备? 在原生iOS中,我可以select离线加载jsbundle。 我怎么能为Android做同样的事情? (或者至less,我可以在哪里configuration服务器地址?) 更新 要使用本地服务器运行,请在react-native项目根目录下运行以下命令 react-native start> / dev / null 2>&1& adb反向tcp:8081 tcp:8081 请看看dsissitka的回答了解更多详情。 要在没有服务器的情况下运行,请运行以下命令将jsfile绑定到apk中: 在android/app/src/main下创build资源文件夹 curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle" 请查看kzzzf的答案了解更多详情。

如何为自定义小部件定义主题(样式)项目

我已经为我们在应用程序中广泛使用的控件编写了一个自定义小部件。 widget类从ImageButton派生,并以几种简单的方式扩展它。 我已经定义了一个可以应用到小部件的样式,但是我希望通过主题进行设置。 在R.styleable我看到了widget的style属性,比如imageButtonStyle和imageButtonStyle 。 有什么办法可以为我写的自定义小部件创build类似的东西吗?

ActionItem的animation图标

我一直在寻找一个妥善解决我的问题,我似乎无法find一个呢。 我有一个ActionBar(ActionBarSherlock)与一个XML文件充气的菜单,该菜单包含一个项目,并且一个项目显示为一个ActionItem。 菜单: <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_refresh" android:icon="@drawable/ic_menu_refresh" android:showAsAction="ifRoom" android:title="Refresh"/> </menu> 活动: […] @Override public boolean onCreateOptionsMenu(Menu menu) { getSupportMenuInflater().inflate(R.menu.mymenu, menu); return true; } […] ActionItem是显示一个图标,没有文字,但是当用户点击ActionItem时,我希望图标开始animation,更具体地说,旋转就位。 有问题的图标是刷新图标。 我意识到ActionBar支持使用自定义视图( 添加一个操作视图 ),但是这个自定义视图被扩大到覆盖整个ActionBar区域,实际上阻止了除了应用程序图标之外的所有东西,在我的情况下,这不是我正在寻找。 所以我的下一个尝试是尝试使用AnimationDrawable并逐帧定义我的animation,将drawable设置为菜单项的图标,然后在onOptionsItemSelected(MenuItem item)获取图标并使用((AnimationDrawable)item.getIcon()).start() 。 然而这是不成功的。 有谁知道有什么办法来达到这个效果?

我们应该使用RecyclerView来replaceListView吗?

Android Docs说: RecyclerView小部件是ListView的更高级和灵活的版本。 这个小部件是一个显示大型数据集的容器,通过维护有限数量的视图可以非常有效地滚动。 如果数据收集的元素在运行时基于用户操作或networking事件而更改,请使用RecyclerView小部件 实际上,如果效率不重要, ListView可以完成以上所有操作,而且我们在使用RecyclerViewreplaceListView时发现了很多问题: 没有onItemClickListener()列表项select – 解决scheme 列表项之间没有分隔符 – 解决scheme 没有内置的重叠select器,当你点击列表项 – 解决scheme时,没有视觉反馈 没有列表头的addHeaderView – 解决scheme 也许更多的问题… 所以当我们使用RecyclerViewreplaceListView ,我们必须做很多额外的编码才能达到与ListView相同的效果。 题: 是否值得我们用RecyclerView完全替代ListView ? 如果不是那么在这种情况下,我们应该更好地使用RecyclerView而不是ListView ,反之亦然? 感谢您的关注和任何想法!

Android的startCamera给我空意图和…它是否会摧毁我的全局variables?

我有下一个问题: 当我尝试启动相机时,我可以拍摄照片,甚至将其保存在我的SD卡上,但是当我要获取在设备上显示的path时,我会遇到错误。 我的全局variables是2(我用1但2更好,以确保这是一个奇怪的错误): private File photofile; private Uri mMakePhotoUri; 这是我的启动相机function: @SuppressLint("SimpleDateFormat") public void farefoto(int num){ // For naming the picture SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss"); String n = sdf.format(new Date()); String fotoname = "Immagine-"+ n +".jpg"; //Going through files and folders File photostorage = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES); File photostorage2 = new File(photostorage, "Immagini"); System.out.println(photostorage+"\n"+photostorage2); photostorage2.mkdirs(); // My […]

Android Studiodebugging器强调错误的行

我看不出执行什么function上的错误,但是我只是浪费了一个小时来certificate我的代码,编译器正在做他们应该做的事情。 考虑这个代码: public int getAnswer(int a) { int retval = 18; int x = 25; int y = 50; while (a– > 0) { if (a == 3) { retval = a; return retval; } } x = 10; y = 20; return 0; } 打电话 int theAnswer = getAnswer(6); 在包含return的行和在运行代码之前断点,尝试并预测结果,并因此命中哪一行。 正如你可以从我的问题的口气想象,错误的行被突出显示,但正确的结果被返回。 如果你通过代码,它跳舞了很多。 是否有任何可以configuration不同,以便正确的行显示? (我正在使用最新的Android […]

如何处理Android 4.2之前版本的RTL语言?

背景 TextView总是有RTL(从右到左)语言的问题。 由于我只知道如何阅读希伯来文(除了英文),所以我会谈论它的问题: 文本alignment(我不是在说重力)。 作为一种RTL语言,希伯来语是从右向左(与英文相反)。 为了展示它是多么令人讨厌,想象一下,不要展示“Hello world”。 你通常会得到“你好世界”。 如果只有一个句子,可以很容易地解决这个问题,但是如果有多个标点符号,这个问题就会变得更加困难。 元音位置。 希伯来语不需要元音以阅读文本,但是有时在没有元音的情况下阅读是非常困难的(尤其是圣经)。 对于元音来说,希伯来文有所谓的“NIKUD”,实际上就像字母里的圆点。 在Android的问题是,他们通常位于错误的位置。 为了展示它是多么令人讨厌,想象一下,不要展示“Hello world”。 你通常会得到“.eHlol owrld”。 即使你试图解决这个问题(把元音总是一个字符放在当前字符之后),这个字母中的位置是不正确的(假设“你好”中的“e”会像“H”例如)。 只有在4.2版本( 在这里阅读“Native RTL支持”),Google已经修复了所有希伯来语相关的问题(或者至less似乎是这样)。 问题 希伯来语的问题已经导致每个以色列航空公司和每个定制ROM制造商都有自己的解决scheme来解决不同的问题,这使得实际上不可能在4.2版本的设备上处理RTL文本。 如果文本包含希伯来文和英文字母,事情会变得更加令人沮丧。 我试过了 我已经阅读了很多关于这些问题的网站,我已经尝试了很多种解决scheme,没有一个能够解决所有设备上的问题: 有些人build议把字符'\ u200F'(或'\ u202D')放在文本的结尾/开始/结尾处。 有人build议使用Html.fromHtml()方法,并在那里放些特别的东西。 有人甚至build议使用WebView来代替(也可以使用WebSettings.setDefaultTextEncodingName() )。 这个问题 这个问题有没有确切的解决办法? 我认为最好的事情是,因为Android 4.2解决了这个问题,Android是开源的,我们应该把它的TextView导入到我们可以使用的库中,但是Google还没有提供这样的库。

用于显示事件的Android CalendarView

我想显示一个日历,使用类似于默认日历应用程序的date上使用不同颜色的事件。 但是我在默认日历视图中没有看到任何这样的API。 任何人都可以请指导我正确的方向如何进行这个? 我应该扩展默认日历并添加我自己的function? 或者,我应该使用PageViewer和碎片5×5文本框?

包括Google Play服务库时,为什么权限会自动添加到我的AndroidManifest中

我注意到,当我在build.gradle文件中使用以下权限时,会自动添加以下权限 compile 'com.google.android.gms:play-services:7.5.0' 这与早期版本的播放服务没有发生。 有没有人有一个解决scheme来删除这些不需要的权限? 我只使用广告function(INTERNET和ACCESSNETWORK_STATE)。 我不需要LOCATION和USE_CREDENTIALS权限。 你如何删除这些不需要的权限? 我注意到'manifest-merger-xxx-debug-report.txt'文件包含以下内容 …<snipped bunch of other merges> MERGED from com.google.android.gms:play-services-maps:7.5.0:22:5 android:name ADDED from com.google.android.gms:play-services-maps:7.5.0:22:22 uses-permission#android.permission.ACCESS_COARSE_LOCATION ADDED from com.google.android.gms:play-services-maps:7.5.0:23:5 MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5 MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5 MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5 android:name ADDED from com.google.android.gms:play-services-maps:7.5.0:23:22 uses-feature#0x00020000 ADDED from com.google.android.gms:play-services-maps:7.5.0:24:5 MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5 MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5 MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5 android:glEsVersion ADDED from com.google.android.gms:play-services-maps:7.5.0:25:8 […]

微调:获得状态或打开时得到通知

是否有可能知道Spinner是打开还是closures? 如果有一些onSpinner的onLpenListener会更好。 我试过使用这样的OnItemSelectedListener: spinnerType.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { executeSomething(); } @Override public void onNothingSelected(AdapterView<?> parent) { Log.d("nothing" , "selected"); } }); 我可以知道,如果select了某些东西(在executeSomething()),窗口将会closures。 但是,如果我单击对话框外部,也会收到通知,这也会closures微调框