Questions tagged «android»

Android是Google的移动操作系统,用于对数字设备(智能手机,平板电脑,汽车,电视,Wear,Glass和IoT)进行编程或开发。对于与Android相关的主题,请使用特定于Android的标签,例如android-intent,android-activity,android-adapter等。对于与开发或编程无关但与Android框架相关的问题,请使用以下链接:https:// android.stackexchange.com。

30
将像素转换为dp
我创建的应用程序的分辨率是的Pantech设备的高度和宽度(以像素为单位)480x800。 我需要为G1设备转换高度和宽度。 我认为将其转换为dp可以解决问题,并为两种设备提供相同的解决方案。 有没有简单的方法可以将像素转换为dp? 有什么建议么?
826 android  pixel  resolution  dpi 

27
在Android上获取用户当前位置的最简单,最可靠的方法是什么?
LocationManagerAndroid上的API似乎对于只需要偶尔粗略估计用户位置的应用程序使用起来有点痛苦。 我正在使用的应用程序本身并不是真正的位置应用程序,但确实需要获取用户的位置才能显示附近商家的列表。无需担心用户是否四处走动或类似的事情。 这是我想做的: 向用户显示附近位置的列表。 预加载用户的位置,以便在我需要ActivityX时可用。 我并不特别在乎准确性或更新频率。只要抓住一个位置就足够了,只要它不远即可。也许如果我想花哨的话,我会每隔几分钟左右更新一次位置,但这并不是一个很重要的任务。 只要具有GPS或网络位置提供程序的任何设备即可使用。 似乎不应该那么难,但是在我看来,我不得不启动两个不同的位置提供程序(GPS和网络)并管理每个生命周期。不仅如此,我还必须在多个活动中重复相同的代码才能满足#2的要求。getBestProvider()过去我曾尝试将解决方案缩减为仅使用一个位置提供程序,但这似乎只会为您提供最佳的“理论”提供程序,而不是实际上会为您提供最佳结果的提供程序。 有没有更简单的方法可以做到这一点?



30
所有com.android.support库都必须使用完全相同的版本规范
更新到android studio 2.3后,我收到此错误消息。我知道这只是应用正常运行的提示,但确实很奇怪。 所有com.android.support库都必须使用完全相同的版本规范(混合版本可能导致运行时崩溃)。找到版本25.1.1,24.0.0。示例包括com.android.support:animated-vector-drawable:25.1.1和com.android.support:mediarouter-v7:24.0.0 我的gradle: dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:25.1.1' compile 'com.android.support:support-v4:25.1.1' compile 'com.android.support:design:25.1.1' compile 'com.android.support:recyclerview-v7:25.1.1' compile 'com.android.support:cardview-v7:25.1.1' compile 'com.google.android.gms:play-services-maps:10.2.0' compile 'com.google.android.gms:play-services:10.2.0' compile 'io.reactivex.rxjava2:rxjava:2.0.1' compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile 'com.jakewharton:butterknife:8.4.0' annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0' compile 'com.blankj:utilcode:1.3.6' compile 'com.orhanobut:logger:1.15' compile 'com.facebook.stetho:stetho:1.4.2' …

14
困境:何时使用片段与活动:
我知道这Activities是为了代表我的应用程序的一个屏幕,而Fragments设计的它们是设计为可重用的UI布局,其中嵌入了逻辑。 直到不久前,我还开发了一个应用程序,因为它说应该进行开发。我创建了一个Activity来代表我的应用程序的屏幕,并将Fragments用于ViewPager或Google Maps。我很少创建ListFragment可以重复使用多次的UI或其他UI。 最近,我偶然发现了一个仅包含2 Activities个的项目,一个是SettingsActivity,另一个是MainActivity。的布局中MainActivity填充了许多隐藏的全屏UI片段,仅显示了一个。在Activity逻辑上有很多FragmentTransitions上,应用程序的不同屏幕之间。 我喜欢这种方法的原因在于,因为应用程序使用ActionBar,所以它保持不变并且不会随着屏幕切换动画而移动,Activity切换一样。这使这些屏幕过渡更加流畅。 因此,我想我想问的是与您分享有关此主题的当前开发方式,我知道乍一看它看起来像是一个基于意见的问题,但我将其视为一个Android设计和体系结构问题。基于意见的。 UPDATE(2014年5月1日):在此之后呈现由埃里克·伯克从广场,(这是我不得不说是一个有很多的Android开发人员有用的工具,一个伟大的演示和我没有以任何方式广场相关) http://www.infoq.com/presentations/Android-Design/ 根据过去几个月的经验,我发现构建应用程序的最佳方法是创建片段组,以代表应用程序中的流程并将所有这些片段组合在一起Activity。因此,基本上Activities,您的应用程序中的流数将与流数相同。这样,动作栏在所有流程的屏幕上都保持不变,但是在更改流程时会重新创建,这很有意义。正如埃里克·伯克(Eric Burke)所言,以及我已经逐渐意识到的那样,尽可能少使用哲学Activities并不适用于所有情况,因为这在他所谓的“上帝”活动中造成了混乱。

20
不幸的是MyApp已停止。我该如何解决?
我正在开发一个应用程序,每次运行它时,都会收到消息: 不幸的是,MyApp已停止。 我该怎么解决? 关于这个问题-显然是受什么是堆栈跟踪的启发,以及如何使用它来调试应用程序错误?,有很多问题表明它们的应用已崩溃,没有任何进一步的细节。这个问题的目的是指导Android新手如何自行解决问题或提出正确的问题。

24
检索父项时出错:升级到AppCompat v23后,找不到与给定名称匹配的资源
我一直使用Eclipse对Android进行编程,并决定开始迁移到Android Studio。我决定使用与Eclipse相同的SDK,然后: 开始一个新项目 设置最低SDK 4.0(API级别14) 选择空白活动选项 活动名称和布局名称使用的默认名称 击中完成 几秒钟后,Gradle完成了构建,并且在文件Teste4 \ app \ build \ intermediates / exploded-aar \ com.android.support \ appcompat-v7 \ 23.0.0 \ res \ values中,以下消息引发了两个错误-v23 \ values-v23.xml: 错误:(2)检索项目的父项时出错:未找到与给定名称“ android:TextAppearance.Material.Widget.Button.Inverse”匹配的资源。 错误:(2)检索项目的父项时出错:未找到与给定名称'android:Widget.Material.Button.Colored'相匹配的资源。 在文件->项目结构->模块:应用程序(左列)->属性标签下,我设置了以下版本: “编译SDK版本”:Android 5.1(API级别22) “构建工具版本”:23.0.2 为了解决这个问题我该怎么办? 我已经尝试过在堆栈溢出问题appcompat-v7:21.0.0'中建议的内容:没有找到与给定名称匹配的资源:attr'android:actionModeShareDrawable',但是没有用。

30
如何在Android上将对象从一项活动传递到另一项活动
我正在尝试从一个发送客户类的对象,Activity然后在另一个对象中显示它Activity。 客户类的代码: public class Customer { private String firstName, lastName, Address; int Age; public Customer(String fname, String lname, int age, String address) { firstName = fname; lastName = lname; Age = age; Address = address; } public String printValues() { String data = null; data = "First Name :" + …


28
使TextView在Android上可滚动
我在textview中显示的文本似乎太长,无法放入一个屏幕。我需要使TextView可滚动。我怎样才能做到这一点? 这是代码: final TextView tv = new TextView(this); tv.setBackgroundResource(R.drawable.splash); tv.setTypeface(face); tv.setTextSize(18); tv.setTextColor(R.color.BROWN); tv.setGravity(Gravity.CENTER_VERTICAL| Gravity.CENTER_HORIZONTAL); tv.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent e) { Random r = new Random(); int i = r.nextInt(101); if (e.getAction() == e.ACTION_DOWN) { tv.setText(tips[i]); tv.setBackgroundResource(R.drawable.inner); } return true; } }); setContentView(tv);
771 android  scroll  textview 

30
在Android中延迟后如何调用方法
我希望能够在指定的延迟后调用以下方法。在目标c中,有类似以下内容: [self performSelector:@selector(DoSomething) withObject:nil afterDelay:5]; android和java中的此方法是否等效?例如,我需要能够在5秒钟后调用一个方法。 public void DoSomething() { //do something here }
769 java  android  handler  delay 

30
如何避免APK文件的反向工程?
我正在开发适用于Android 的付款处理应用程序,并且我想防止黑客访问APK文件中的任何资源,资产或源代码。 如果有人将.apk扩展名更改为.zip,那么他们可以将其解压缩并轻松访问应用程序的所有资源和资产,并且使用dex2jar和Java反编译器,他们还可以访问源代码。对Android APK文件进行反向工程非常容易-有关更多详细信息,请参见Stack Overflow问题:从APK文件反向工程到项目。 我已经使用了Android SDK随附的Proguard工具。当我反向工程使用签名的密钥库和Proguard生成的APK文件时,我得到的代码很混乱。 但是,Android组件的名称保持不变,某些代码(如应用中使用的键值)保持不变。根据Proguard文档,该工具不能混淆清单文件中提到的组件。 现在我的问题是: 如何完全防止 Android APK的反向工程?这可能吗? 如何保护应用程序的所有资源,资产和源代码,以使黑客无法以任何方式对APK文件进行黑客攻击? 有没有办法使黑客攻击变得更加艰难甚至不可能?我还能做些什么来保护APK文件中的源代码?


23
如何确定片段何时在ViewPager中可见
问题:片段onResume()在ViewPager之前的片段变成实际可见被激发。 例如,我有2个带有ViewPager和的片段FragmentPagerAdapter。第二个片段仅适用于授权用户,我需要让用户在该片段可见时登录(使用警报对话框)。 但是,ViewPager当第一个片段可见时,它会创建第二个片段,以便缓存第二个片段,并在用户开始滑动时使其可见。 因此,onResume()事件早在它可见之前就在第二个片段中触发。这就是为什么我试图找到一个事件,该事件在第二个片段变得可见时触发,并在适当的时候显示一个对话框。 如何才能做到这一点?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.