Questions tagged «android»

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

3
Android为什么不使用更多枚举?
由于某些原因,我开始非常喜欢在代码中使用C#和Java枚举: 它们比整数,字符串或布尔标志集更具类型安全性。 它们导致更具可读性的代码。 将枚举设置为无效值比使用int或字符串更困难。 它们使发现变量或参数的允许值变得容易。 我读过的所有内容都表明它们在C#和大多数JVM中的表现与整数一样好。 但是,Android框架有很多情况需要传递各种类型的标志,但是似乎没有一个使用枚举。在那里我会认为他们的使用将是有益的一对夫妇的例子是Toast.LENGTH_SHORT/Toast.LENGTH_LONG和View.GONE,View.VISIBLE等等。 为什么是这样?枚举在Dalvik中的表现是否比简单整数差?还有其他我不知道的缺点吗?
79 android  enums 

6
动作栏下的ProgressBar
问题摘要:我如何像在Chrome App上那样ProgressBar在内集成ActionBar? 详细信息:查看Chrome的以下屏幕截图: 我想像这样创建一个动作栏。在操作栏的下面,有一个根据页面加载情况填充的ProgressBar。我已经从许多应用程序(例如Feedly)中看到了这个示例,但是我无法创建自己的实现。我尝试使用Android自己的API创建它: @Override protected void onCreate(Bundle savedInstanceState) { //Request Permission to display the Progress Bar... this.requestWindowFeature(Window.FEATURE_PROGRESS); this.setWindowContentView(R.layout.activity_main) super.onCreate(savedInstanceState); this.setProgressBarIndeterminate(true); } 但是此代码只会使ProgressBar显示在操作栏上,如下所示: 因此,如何使ProgressBar出现在操作栏下方,就像在Chrome应用程序上一样?

9
appcompat-v7 v21.0.0导致装有Android v4.2.2的三星设备崩溃
我们只是将应用程序更改为使用该appcompat-v7 support库,以便利用支持操作栏和支持Material主题。使用v21.0.0 of appcompat-v7(和v21.0.0 of support-v4),我们现在Google Play只能看到和/或使三星设备runningAndroid v4.2.2 . Here is the stack trace from Google Play and the app appears to crash as soon as theactionbar中的崩溃和Crashlytics失效。 java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder at android.support.v7.app.ActionBarActivityDelegateBase.initializePanelMenu(ActionBarActivityDelegateBase.java:991) at android.support.v7.app.ActionBarActivityDelegateBase.preparePanel(ActionBarActivityDelegateBase.java:1041) at android.support.v7.app.ActionBarActivityDelegateBase.doInvalidatePanelMenu(ActionBarActivityDelegateBase.java:1259) at android.support.v7.app.ActionBarActivityDelegateBase.access$100(ActionBarActivityDelegateBase.java:80) at android.support.v7.app.ActionBarActivityDelegateBase$1.run(ActionBarActivityDelegateBase.java:116) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:176) at android.app.ActivityThread.main(ActivityThread.java:5299) at java.lang.reflect.Method.invokeNative(Native Method) …

2
创建ActionMode时未调用onPrepareActionMode
我刚刚完成了其中一个应用程序的调整,以适应新的v22.1.1支持和appcompat库,有关更多详细信息,请参见此处和此处。当我进行一些测试时,我使用的ActionModes出现了问题。 使用调用启动ActionMode时startSupportActionMode()-不会被调用,而使用现在不建议使用的ActionBarActivity基类或新的AppCompatActivity基类onPrepareActionMode()。 在onPrepareActionMode()最初使用创建ActionMode时,包括v21.0.3和v22.0.0在内的早期版本会自动调用startSupportActionMode()。 我在2.2、4.4.2和5.0的设备上进行了测试,因此它似乎与版本无关。 有人知道,如果这是预期的行为,则是在v22.1.1中引入的,或者是错误? 我发现了这个问题,但是这里没有很多反馈... 编辑2015年5月11日: 如Android问题跟踪器159527中所述,此问题不仅影响appcompat v22.1.x和支持库,还影响Android 5.1的实现。 目前有两种可能的临时解决方案,一种是通用的: @Override public ActionMode startSupportActionMode(final ActionMode.Callback callback) { // Fix for bug https://code.google.com/p/android/issues/detail?id=159527 final ActionMode mode = super.startSupportActionMode(callback); if (mode != null) { mode.invalidate(); } return mode; } 和“快速而肮脏的”(当您实例化ActionMode时): final ActionMode actionMode = startSupportActionMode(new MyActionMode()); if(actionMode != null) { actionMode.invalidate(); …

4
在OnClickListener内部,我无法访问很多东西-如何处理?
在OnClickListener内部,我无法访问范围“外部”的大多数变量,如下所示: findViewById(R.id.Button01).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent mainApps = new Intent(Intent.ACTION_MAIN); mainApps.addCategory(Intent.CATEGORY_LAUNCHER); List<ActivityInfo> activities = this.getPackageManager().queryIntentActivities(mainApps, 0); /* Intent intent = new Intent("com.sygic.drive/com.sygic/drive/.SygicDriveActivity"); startActivity(intent);*/ } }); 在此示例中,我需要获取PacketManager,但由于在OnClickListener中没有可用的上下文,因此无法获取它。 我可以在外面做一个静态引用,并在里面使用它,对吗?似乎总是必须这样做吗?
79 java  android 

13
自定义Android Facebook登录按钮
我想自定义我们与Android的Facebook sdk(facebook-android-sdk-3.0.1)相处的Facebook登录按钮的外观。我想要一个简单的android按钮,其标题为“通过Facebook登录”。我找不到与此有关的任何文档。 因此,如果有人知道如何以简单的方式进行操作,请告诉我或指导我如何进行操作。

3
如何遍历共享首选项的所有键?
SharedPreferences具有方法getAll,但尽管存在某些键,但它不返回任何条目: PreferenceManager.getDefaultSharedPreferences(this).contains("addNewAddress"); 返回true Map<String, ?> keys=PreferenceManager.getDefaultSharedPreferences(this).getAll(); 返回空地图 怎么了?如何获取所有共享首选项的列表?

8
Android ImageView将较小的图像缩放为宽度,并具有灵活的高度,而不会裁剪或变形
经常被问到,从未回答(至少不是以可重复的方式)。 我有一个图像视图,其图像小于该视图。我想将图像缩放到屏幕的宽度,并调整ImageView的高度以按比例地反映图像的正确高度。 <ImageView android:layout_width="fill_parent" android:layout_height="wrap_content" /> 这导致图像以其原始大小(小于屏幕宽度)为中心,并在侧面留有边距。不好。 所以我加了 android:adjustViewBounds="true" 效果一样,不好。我加了 android:scaleType="centerInside" 效果一样,不好。我更改centerInside为fitCenter。效果一样,不好。我改centerInside到centerCrop。 android:scaleType="centerCrop" 现在,最后,图像被缩放到屏幕的宽度-但在顶部和底部被裁剪!所以我改变了centerCrop对fitXY。 android:scaleType="fitXY" 现在,图像被缩放到屏幕的宽度,但没有在y轴上缩放,从而导致图像失真。 删除android:adjustViewBounds="true"无效。android:layout_gravity如在其他地方建议的那样,添加仍然无效。 我尝试了其他组合-无济于事。所以,请问有人知道: 如何设置ImageView的XML以填充屏幕宽度,缩放较小的图像以填充整个视图,以其宽高比显示图像而不会失真或裁剪? 编辑:我也尝试设置任意数字高度。这仅对centerCrop设置有效。它将根据视图高度垂直扭曲图像。

8
java.lang.IllegalArgumentException:包含路径分隔符
我的代码中有一个文件名: String NAME_OF_FILE="//sdcard//imageq.png"; FileInputStream fis =this.openFileInput(NAME_OF_FILE); // 2nd line 我在第二行出现错误: 05-11 16:49:06.355:错误/ AndroidRuntime(4570):由以下原因引起:java.lang.IllegalArgumentException:File //sdcard//imageq.png包含路径分隔符 我也尝试过这种格式: String NAME_OF_FILE="/sdcard/imageq.png";
79 android 

7
如何使用AppCompat v21在android中创建浮动操作按钮(FAB)?
我想创建一个浮动操作按钮(将项目添加到列表视图),例如Google日历,以保持与棒棒糖Android之前版本(5.0之前)的兼容性。 我创建了这个布局: 活动main_activity.xml: <LinearLayout ... > <include layout="@layout/toolbar"/> <RelativeLayout ... > <!-- My rest of the layout --> <!-- Floating action button --> <ImageButton style="@style/AppTheme" android:layout_width="60dp" android:layout_height="60dp" android:text="New Button" android:id="@+id/button" android:src="@drawable/ic_fab" android:background="@drawable/fab" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_marginBottom="24dp" android:layout_marginRight="24dp"/> </RelativeLayout> </LinearLayout> 可绘制的fab.xml: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#ffa48bc0"/> </shape> 样式styles.xml <resources> …
79 android  xml 


14
Android-停止线程的最佳安全方法
我想知道哪种是停止Android中线程的最佳方法。我知道我可以AsyncTask代替它,并且有一种cancel()方法。我必须Thread在我的情况下使用。这是我的使用方式Thread: Runnable runnable = new Runnable() { @Override public void run() { //doing some work } }; new Thread(runnable).start(); 那么,有谁知道停止线程的最佳方法是什么?

5
Android数据库加密
Android使用SQLite数据库存储数据,我需要加密SQLite数据库,该怎么办?我了解应用程序数据是私有的。但是,我需要明确加密我的应用程序正在使用的SQLite数据库。

5
如何在Android上使用WCF服务
我正在.NET中创建服务器,并为Android创建客户端应用程序。我想实现一种身份验证方法,该方法将用户名和密码发送到服务器,然后服务器发送回会话字符串。 我对WCF不熟悉,因此非常感谢您的帮助。 在Java中,我编写了以下方法: private void Login() { HttpClient httpClient = new DefaultHttpClient(); try { String url = "http://192.168.1.5:8000/Login?username=test&password=test"; HttpGet method = new HttpGet( new URI(url) ); HttpResponse response = httpClient.execute(method); if ( response != null ) { Log.i( "login", "received " + getResponse(response.getEntity()) ); } else { Log.i( "login", "got …
79 .net  android  wcf  rest 

8
在模块guava-20.0.jar(com.google.guava:guava:20.0)中找到的重复类com.google.common.util.concurrent.ListenableFuture
在我的中使用implementation 'com.google.firebase:firebase-inappmessaging-display:17.2.0'时app/build.gradle,出现以下错误: Duplicate class com.google.common.util.concurrent.ListenableFuture found in modules guava-20.0.jar (com.google.guava:guava:20.0) and listenablefuture-1.0.jar (com.google.guava:listenablefuture:1.0) Go to the documentation to learn how to Fix dependency resolution errors. 我的内在app/build.gradle是: implementation 'com.google.android.gms:play-services-base:16.1.0' implementation 'com.google.android.gms:play-services-analytics:16.0.8' implementation 'com.google.android.gms:play-services-awareness:16.0.0' implementation 'com.google.android.gms:play-services-cast:16.2.0' implementation 'com.google.android.gms:play-services-gcm:16.1.0' implementation 'com.google.android.gms:play-services-location:16.0.0' implementation 'com.google.android.gms:play-services-maps:16.1.0' implementation 'com.google.firebase:firebase-core:16.0.8' implementation 'com.google.firebase:firebase-iid:17.1.2' implementation 'com.google.firebase:firebase-messaging:17.6.0' implementation 'android.arch.work:work-runtime:1.0.1' implementation 'com.android.support:multidex:1.0.3' …

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.