Questions tagged «android»

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

5
没有ContentProvider的CursorLoader用法
Android SDK文档说该startManagingCursor()方法已被弃用: 不建议使用此方法。而是将新的CursorLoader类与LoaderManager一起使用;在旧版平台上,也可以通过Android兼容性软件包获得此功能。此方法使活动可以根据活动的生命周期来为您管理给定的Cursor生命周期。也就是说,当活动停止时,它将自动在给定的Cursor上调用deactivate(),而在稍后重新启动时,它将为您调用requery()。活动销毁后,所有托管游标将自动关闭。如果您的目标是HONEYCOMB或更高版本,请考虑改用LoaderManager(可通过getLoaderManager()获得) 所以我想用CursorLoader。但是,当我在的构造函数中需要URI时,如何在有自定义CursorAdapter和不存在的情况下使用它?ContentProviderCursorLoader

11
如何在视图中以编程方式设置样式属性
我从带有以下代码的XML中获取视图: Button view = (Button) LayoutInflater.from(this).inflate(R.layout.section_button, null); 我想为按钮设置一个“样式”,该如何在java中进行呢,因为我想为每个按钮使用几种样式。
107 android  styles 

3
拦截来自浏览器的链接以打开我的Android应用
我希望能够在用户单击给定格式的URL时提示我的应用程序打开链接,而不是允许浏览器打开它。当用户在浏览器中的网页上,电子邮件客户端中或刚开发的应用程序中的WebView中时,可能就是这种情况。 例如,从手机中的任意位置单击YouTube链接,您将有机会打开YouTube应用。 如何为自己的应用程序实现这一目标?


10
如何从片段获取工具栏?
我ActionBarActivity有NavigationDrawer和使用support_v7 Toolbar的动作条。在我的片段之一中,工具栏具有自定义视图。在其他片段中Toolbar应显示标题。 如何Toolbar从片段中获取用于定制的实例?我可以使用获取ActionBar getActivity().getActionBar(),但是如果我调用setTitle()该实例ActionBar,它什么也不做。 UPD: 就我而言 ((ActionBarActivity) getActivity()).getSupportActionBar().setTitle(); (正如MrEngineer13所说)在第一次创建片段时不起作用,因为我是从onHiddenChanged()调用它的。现在,我向onCreateView()添加了一个,并且工作正常。





11
如何实现自定义AlertDialog视图
在AlertDialog上的Android文档中,它提供了以下说明和示例,用于在AlertDialog中设置自定义视图: 如果要显示更复杂的视图,请查找称为“ body”的FrameLayout并将视图添加到其中: FrameLayout fl = (FrameLayout) findViewById(R.id.body); fl.add(myView, new LayoutParams(FILL_PARENT, WRAP_CONTENT)); 首先,很明显这add()是一个错字,并且本来就是addView()。 我对使用R.id.body的第一行感到困惑。看来这是AlertDialog的主体元素,但我不能只在代码b / c中输入它,它会产生编译错误。R.id.body在哪里定义或分配的? 这是我的代码。我试图setView(findViewById(R.layout.whatever)在生成器上使用,但是没有用。我以为是因为我没有手动充气? AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Title") .setCancelable(false) .setPositiveButton("Go", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int id) { EditText textBox = (EditText) findViewById(R.id.textbox); doStuff(); } }); FrameLayout f1 = (FrameLayout)findViewById(R.id.body /*CURRENTLY an …

4
Android手机方向概述(包括指南针)
我一直试图绕过Android方向传感器。我以为我明白了。然后我意识到自己没有。现在我想(希望)我再次感觉更好,但我仍然不是100%。我将尝试解释我对此的零散理解,并希望如果我在部分内容上有误或填写任何空白,人们将能够纠正我。 我想象我正站在经度0度(本初子午线)和纬度0度(赤道)上。这个位置实际上是在非洲沿海的大海中,但请耐心等待。我将手机握在脸前,使手机的底部指向我的脚;我正对着北方(正对格林威治),因此电话的右侧将东方指向非洲。在这个方向上(参考下图),我的X轴指向东方,Z轴指向南方,Y轴指向天空。 现在,手机上的传感器使您可以在这种情况下确定设备的方向(而不是位置)。这部分总是让我感到困惑,可能是因为在我接受某项功能之前,我想先了解一下它们是如何工作的。似乎手机结合了两种不同的技术来确定其方向。 在开始之前,请想象一下,以上述方向站在纬度和经度为0度的那片假想土地上。还要想象一下,您被蒙住双眼并将鞋子固定在游乐场的环形交叉路口上。如果有人将您向后推,您将跌倒(朝北)并伸出双手来摔倒。同样,如果有人将您的左肩推开,您的右手就会摔倒。您的内耳具有“重力感应器” (youtube片段),可让您检测自己是向前/向后跌倒,还是向左/向右跌倒或向下(或向上!)跌倒!因此,人类可以检测到与手机相同的X和Z轴周围的对齐和旋转。 现在,假设有人现在在回旋处将您旋转90度,因此您现在正对着东方。您正在绕Y轴旋转。该轴是不同的,因为我们无法对其进行生物学检测。我们知道我们成一定角度,但我们不知道相对于地球磁北极的方向。相反,我们需要使用外部工具……电磁罗盘。这使我们能够确定我们所面对的方向。我们的手机也是如此。 现在,手机还具有3轴加速度计。我没有知道它们实际上是如何工作的,但我将其可视化的方式是将重力想象为恒定且均匀的“雨”从天上掉下来,并想象上图中的轴为可以检测流过的雨量的管子。当手机直立时,所有的雨水都会流过Y型“管”。如果逐渐旋转手机,使其屏幕面向天空,则通过Y的雨水量将减少至零,而通过Z的雨量将稳步增加,直到最大量的雨水通过。同样,如果我们现在将手机倾斜到其侧面,则X形管最终将聚集最大的雨量。因此,根据手机的方向,通过测量流经3根管子的雨水量,可以计算出方向。 该电话还具有一个电子指南针,其行为类似于普通指南针-它的“虚拟针”指向磁性北极。Android会合并来自这两个传感器的信息,以便每当生成一个SensorEventof 时,TYPE_ORIENTATION该values[3]数组便会具有 值[0]:方位角-(位于北磁北的罗盘) 值[1]:螺距,绕x轴旋转(是电话)向前或向后倾斜) 值[2]:围绕y轴滚动,旋转(手机向左或向右倾斜) 因此,我认为(即我不知道)Android提供方位角(罗盘方位角)而不是读取第三个加速度计的原因是罗盘方位角更有用。我不确定他们为什么不赞成使用这种类型的传感器,因为现在看来您需要在系统中为SensorEventtype 为的注册一个侦听器TYPE_MAGNETIC_FIELD。value[]需要将事件的数组传递到SensorManger.getRotationMatrix(..)方法中以获得旋转矩阵(请参见下文),然后将其传递到SensorManager.getOrientation(..)方法中。有谁知道为什么Android团队不赞成使用Sensor.TYPE_ORIENTATION?这是效率的事情吗?这是对类似问题的评论中所隐含的含义,但是您仍然需要在该注释中注册其他类型的侦听器。开发/示例/指南针/src/com/example/android/compass/CompassActivity.java示例。 我现在想谈谈旋转矩阵。(这是我最不确定的地方)因此,在上面我们有Android文档中的三个数字,我们将它们称为A,B和C。 A = SensorManger.getRotationMatrix(..)方法图,它表示世界坐标系 B = SensorEvent API使用的坐标系。 C = SensorManager.getOrientation(..)方法图 因此,我的理解是A代表“世界坐标系”,我认为这是指行星上的位置以(纬度,经度)加上可选的(海拔)的方式给出的方式。X是“东”坐标,Y是“北”坐标。Z指向天空并代表高度。 手机坐标系如图B所示是固定的。其Y轴始终指向顶部。手机会不断计算旋转矩阵,并允许在两者之间进行映射。因此,我是否认为旋转矩阵将B的坐标系转换为C是正确的?因此,当您调用SensorManager.getOrientation(..)方法时,将使用values[]与图C相对应的值的数组。当电话指向天空时,旋转矩阵为单位矩阵(矩阵数学等价为1),这意味着在对齐设备时不需要映射与世界坐标系。 好。我想我最好现在停止。就像我之前说过的那样,我希望人们能告诉我我在哪里弄糟或帮助了人们(或使人们更加困惑!)。

7
在片段中未调用OnCreateOptionsMenu()
我有一个应用程序,其中一个活动水平放置了2个片段。 在我的活动中,我使用onCreateOptionsMenu()能显示操作栏选项菜单的菜单夸大了菜单。但是,当我尝试从片段之一更新操作栏菜单项时,onCreateoptionsmenu()不会调用。因此,我无法更新操作栏选项菜单。 我活动中的代码如下: myActivity.java package com.andr.androidtablelist; import java.io.IOException; import android.app.ActionBar; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.Toast; import com.andr.fragments.ListLeftFragment; import com.andr.utils.DBHelper; public class TabletActivity extends Activity { ActionBar actionBar = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); DBHelper dbhelper; dbhelper = new DBHelper(this); try …

9
Android ViewPager-在左右显示页面预览
我正在使用Android的ViewPager。我要做的是在左右两边都显示页面的预览。我已经看到可以在底片pageMargin上显示右侧预览的地方。 setPageMargin(-100); 无论如何,我还能显示左侧的预览吗?它基本上类似于我正在寻找的Gallery小部件。


3
使用Retrofit 2.0和RxJava获取响应状态代码
我正在尝试升级到Retrofit 2.0,并在我的android项目中添加RxJava。我正在进行api调用,并希望在服务器出现错误响应的情况下检索错误代码。 Observable<MyResponseObject> apiCall(@Body body); 在RxJava调用中: myRetrofitObject.apiCall(body).subscribe(new Subscriber<MyResponseObject>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(MyResponseObject myResponseObject) { //On response from server } }); 在Retrofit 1.9中,RetrofitError仍然存在,我们可以通过执行以下操作获取状态: error.getResponse().getStatus() 如何使用RxJava使用Retrofit 2.0?

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.