Articles of android

Android 5+目录树选取器中的清理历史记录(最近的文件夹)(ACTION_OPEN_DOCUMENT_TREE)

创建的目录树选取器 Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE); … 在Android 5+上将所有选中的目录历史记录保存到Recent文件夹: … 有没有办法如何抹去这段历史?

用于改造的定制转换器

我正在尝试使用自定义转换器进行Retrofit RestAdapter.Builder builder = new RestAdapter.Builder() .setEndpoint(BuildConfig.BASE_SERVER_ENDPOINT) .setClient(new OkClient(client)).setConverter(new CitationResponseConverter()) .setLogLevel(RestAdapter.LogLevel.FULL); 下面是我的自定义转换器 public class CitationResponseConverter implements Converter { @Override public Object fromBody(TypedInput typedInput, Type type) throws ConversionException { try { InputStream in = typedInput.in(); // convert the typedInput to String String string = fromStream(in); in.close(); // we are responsible to close the InputStream after use […]

无法对非静态方法进行静态引用(Android getApplicationContext())

通过使用Soonil( 如何在Android中声明全局variables? )中解释的android.app.Application的子类,我一直在我的Android应用程序中的活动中存储一个全局variables。 方法如下: class MyApp extends Application { private String myState; public String getState(){ return myState; } public void setState(String s){ myState = s; } } class Blah extends Activity { @Override public void onCreate(Bundle b){ … MyApp appState = ((MyApp)getApplicationContext()); String state = appState.getState(); … } } 到目前为止,这种方法适用于从我的任何活动中访问全局variables。 但是今天使用相同的方法,我得到以下错误: Cannot make a static […]

复数的错误/警告:“数量’一’匹配多个特定数字……”

背景 我在一个内部有很多翻译的应用程序上工作。 我有下一个英文复数字符串: added photo added %d photos 和法语翻译: a ajouté une photo a ajouté %d photos 问题 对于法语和俄语,我收到了下一个警告: 数量“one”与此区域设置中的多个特定数字匹配,但消息不包含格式参数(例如%d)。 这通常是国际化错误。 请参阅完整的问题解释。 当选择显示细节时,它说: 很好,我不知道该怎么做才能解决它,如果有问题…… 这个问题 我究竟应该用这些字符串做什么? 我该怎么告诉翻译?

领域:记录顺序已更改

我正在尝试用Realm database开发我的Android应用程序。 今天我遇到了以下问题:我在表中添加了一个记录列表,然后尝试删除其中一个。 删除其余的顺序后更改(与删除前的顺序不同)。 请参阅下面的图片以查看详细信息。 删除之前 删除第3项后 问题是:那是一个function还是一个bug? 我如何保持记录的顺序? 我知道我可以轻松地获得正确的顺序,因为我想添加一个新字段作为createTime或类似的东西,但我想find一个非常简单的解决方案作为Realm的配置。

与Picasso的ShareActionProvider分享图片

我花了几个小时才find这个解决方案…… 所以我决定分享这个信息,也许有一个它会有用:) 第一种方法 (如下所示)从视图中获取位图并将其加载到文件中。 // Get access to ImageView ImageView ivImage = (ImageView) findViewById(R.id.ivResult); // Fire async request to load image Picasso.with(context).load(imageUrl).into(ivImage); 然后假设在图像完成加载后,这就是你可以触发共享的方式: // Can be triggered by a view event such as a button press public void onShareItem(View v) { // Get access to bitmap image from view ImageView ivImage = (ImageView) findViewById(R.id.ivResult); // […]

如何在Android EditText中进行提示换行?

我的EditText提示没有包装。 如果最后一部分被切断,提示不是很有用。 我非常谨慎地限制/强制我的EditText框的尺寸,以确保它看起来不错,无论屏幕尺寸如何。 以下是相关xml的外观: 我已经设置了android:lines=”3″来缓解这个问题,但这还不够。 为了最大限度地提高与各种屏幕尺寸的兼容性,我更喜欢操作系统包裹我,在字符串中添加换行符和硬回车。 视图中还发生了其他事情,这也促使我不要手动设置框的宽度以促进良好的rest。

创建自定义popup对话框菜单

我正在尝试在菜单按钮上单击popup菜单,如下面的屏幕所示: 我试过popupwindow方法,但无法达到确切的情况。 这是我正在尝试的方式: private View.OnClickListener showPopupWindow() { return new View.OnClickListener() { @Override public void onClick(View v) { PopupWindow popUp = popupWindowsort(); popUp.showAsDropDown(v, 1, 1); // show popup like dropdown list } }; } private PopupWindow popupWindowsort() { // initialize a pop up window type popupWindow = new PopupWindow(context); ArrayList sortList = new ArrayList(); sortList.add(“VIEW FULL”); […]

获取用户在后台发送到服务器的每日步数的最佳方法

我想每24小时向我的服务器发送一下我走了几步。 我有一个AlarmManager来关闭alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),1000*60*60*24, pendingIntent1) 现在这就是我被困的地方……我应该如何衡量每日步骤?(记住我需要在后台发送这个)我可以使用这个可以覆盖此函数的服务public void onSensorChanged(SensorEvent event) this doesn’因为我的服务可能被破坏(电池会很快耗尽),所以看起来很准确。 要么 我可以尝试使用Google健身,但每次我尝试获取数据时都需要用户连接mGoogleApiClient.connect() (我需要在后台获取此数据) 有人有这方面的经验吗?

如何在Android中动态合并两个Drawable?

所以我有两个不同的Drawables ,我需要合并并在运行时获得一个Drawable 。 我希望第一个Drawable位于顶部,另一个位于底部。 我遇到了LayerDrawable ,它看起来就像我需要的那样,但是我在设置Drawables遇到了麻烦。 所以我有一个48×48 dp的ImageButton ,这是最终的Drawable所在。 第一个Drawable是加号按钮(20×20 dp ),第二个是加号按钮下方的小点(4×4 dp )。 加号按钮Drawable使用字体字形加载。 我正在使用这个xml片段创建点按钮Drawable : 我的第一种方法是将两个Drawables添加到LayerDrawable ,但是当我这样做时,忽略xml中指定的点的width / height属性,并且它会延伸以覆盖加号图标。 LayerDrawable finalDrawable = new LayerDrawable(new Drawable[] {plusIcon, dotIcon}); 以上结果如下: 我尝试的第二种方法是使用setLayerInset来尝试定位两个Drawables 。 LayerDrawable finalDrawable = new LayerDrawable(new Drawable[] {plusIcon, dotIcon}); finalDrawable.setLayerInset(0, 0, 0, 0, 0); finalDrawable.setLayerInset(1, dp(22), dp(44), dp(22), 0); 上面的代码片段最终将点放在正确的位置,但它也开始影响加号按钮的位置和大小,最终看起来像这样: 但我真正想要的是在ImageButton的中心加上加号按钮,在它下面加上加号图标。 有没有人知道我哪里出错了?我怎样才能正确定位两个抽屉? PS:我的应用支持API 15+,所以我不能使用LayerDrawable的API中的一堆方法,如setLayerGravity […]