小编And*_*Dev的帖子

Android:获取应用程序名称(不是包名)

在我的清单中我有:

  <application
    android:name=".MyApp"
    android:icon="@drawable/ic_launcher_icon"
    android:label="@string/app_name"
    android:debuggable="true">
Run Code Online (Sandbox Code Playgroud)

我如何获得标签元素?注意:我的代码在别人的内部运行,因此我无法访问@ string/app_name.

android

112
推荐指数
9
解决办法
10万
查看次数

处理Android上的Google Cloud Messaging中的注册ID更改

在Google Cloud Messaging的文档中,它指出:

Android应用程序应该存储此ID以供以后使用(例如,如果已经注册,则检查onCreate()).请注意,Google可能会定期刷新注册ID,因此您应该设计Android应用程序,并了解可能会多次调用com.google.android.c2dm.intent.REGISTRATION意图.您的Android应用程序需要能够做出相应的响应.

我使用以下代码注册我的设备:

GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(context);
String regID = gcm.register(senderID);
Run Code Online (Sandbox Code Playgroud)

GoogleCloudMessaging类封装了注册过程.那么我想如何处理com.google.android.c2dm.intent.REGISTRATION,因为处理是由GoogleCloudMessaging类在内部完成的?

android push-notification google-cloud-messaging

77
推荐指数
2
解决办法
6万
查看次数

如何引用另一个类的当前或主要活动

我经常发现自己需要访问需要引用某些活动的方法.例如,要使用getWindowManager,我需要访问一些Activity.但是,我使用这些方法的代码通常在其他一些没有引用活动的类中.到目前为止,我已经存储了对主要活动的引用,或者将某些活动的上下文传递给了该类.有没有更好的方法来做到这一点?

android android-context android-activity

54
推荐指数
3
解决办法
8万
查看次数

Java:舍入到最接近的5的倍数(向上或向下)

我需要将一个数字舍入到最接近的5的倍数(向上或向下).例如,以下是数字列表及其旁边需要向上/向下舍入的数字.

12.5  10
62.1  60
68.3  70
74.5  75
80.7  80
Run Code Online (Sandbox Code Playgroud)

数字只会是积极的.

java rounding

47
推荐指数
5
解决办法
5万
查看次数

Scaffold 中 PaddingValues 参数的用途是什么

@Composable
fun LayoutsCodelab() {
    Scaffold(
        topBar = {
            TopAppBar(
                title = {
                    Text(text = "LayoutsCodelab")
                }
            )
        }
    ) { innerPadding ->
        BodyContent(Modifier.padding(innerPadding))
    }
}
Run Code Online (Sandbox Code Playgroud)

删除innerPadding不会改变任何东西。 请注意,我是Compose

新手。 如果有任何困惑,请在评论中询问

android android-jetpack-compose android-jetpack-compose-scaffold

45
推荐指数
1
解决办法
2万
查看次数

如何在日历中将时间设置为24小时格式

我需要在当前日期设置时间.时间字符串总是24小时格式,但我得到的结果是错误的:

  SimpleDateFormat df = new SimpleDateFormat("kk:mm");
  Date d1 = df.parse("10:30");
  Calendar c1 = Calendar.getInstance();
  c1.set(Calendar.HOUR, d1.getHours());
  c1.set(Calendar.MINUTE, d1.getMinutes());
Run Code Online (Sandbox Code Playgroud)

日期应为今天的日期,时间设置为10:30.相反,c1中的时间最终为22:30.如何强制日历控件识别我的时间是24小时格式?

编辑: 如果我这样做:

Calendar c1 = Calendar.getInstance();
c1.set(Calendar.HOUR, 10);
c1.set(Calendar.MINUTE, 30);
Run Code Online (Sandbox Code Playgroud)

这给了我相同的结果.为什么?

java calendar

32
推荐指数
3
解决办法
11万
查看次数

Android Studio无法解析org.junit

我在Android Studio 1.2.2中使用JUnit测试.测试没有问题.唯一令我困惑的是Android Studio无法解析实际的org.junit包.显然它确实解决了它,否则测试不会运行.但是导入和注释在Android Studio中标记为红色,如此处所示.这是Android Studio中的错误吗?我尝试重建应用程序并重新启动Android Studio,但这并不能解决问题.

import org.junit.Test;

import static org.junit.Assert.*; // cannot resolve symbol 'junit'

public class CanadaTest
{
    @Test
    public void testCountryName() throws Exception
    {
        int x = 0;
        x++;
    }
}
Run Code Online (Sandbox Code Playgroud)

junit android android-studio

29
推荐指数
4
解决办法
1万
查看次数

将字节数组值以little endian顺序转换为short值

我有一个字节数组,其中数组中的数据实际上是短数据.字节以小端顺序排序:

3,1,-48,0,-15,0,36,1

转换为短值时会导致:

259,208,241,292

Java中有一种简单的方法可以将字节值转换为相应的短值吗?我可以编写一个循环,它只占用每个高字节并将其移位8位,并将其与低字节一起使用,但这会影响性能.

java arrays byte endianness

21
推荐指数
1
解决办法
4万
查看次数

Android:修订版21未出现在SDK Manager中

Google发布了他们的SDK Revision 21,但它没有出现在我的SDK Manager中.以下是SDK Manager的快照:

SDK Manager

有什么建议吗?

sdk android

19
推荐指数
2
解决办法
5395
查看次数

在整个应用程序中处理多个实验注释

我有一个应用程序大量使用 Jetpack Compose 的实验功能,因此我必须在可组合项上声明一堆注释。由于这些注释要求调用者也声明它们,所以我最终遇到了以下情况:我有一个包含以下代码的活动:

\n
import androidx.appcompat.app.AppCompatActivity\n\nimport androidx.compose.material.ExperimentalMaterialApi\nimport androidx.compose.ui.ExperimentalComposeUiApi\n\nimport com.google.accompanist.navigation.material.ExperimentalMaterialNavigationApi\nimport com.google.accompanist.pager.ExperimentalPagerApi\nimport com.google.accompanist.permissions.ExperimentalPermissionsApi\n\xe2\x80\xa6\n\nclass MainActivity : AppCompatActivity() {\n\n    @ExperimentalPermissionsApi\n    @ExperimentalComposeUiApi\n    @ExperimentalPagerApi\n    @ExperimentalMaterialNavigationApi\n    @ExperimentalMaterialApi\n    override fun onCreate(savedInstanceState: Bundle?) {\n        // \xe2\x80\xa6 wiring up compose code (which propagates the experimental annotations)\n
Run Code Online (Sandbox Code Playgroud)\n

避免这种情况的另一种方法是使用@OptIn,但由于每个声明只允许使用一个,因此它不适用于我的具有多个实验功能的情况。

\n

无论如何\xe2\x80\xa6 这在 Kotlin 1.5 中 \xe2\x80\x94 工作得很好。

\n

使用 Kotlin 1.6 我收到编译错误:

\n
\n

覆盖上的选择加入要求标记注释需要基本声明上的相同标记

\n
\n

但基本声明位于标准 API 中,我无法更改。\n如何进行编译(并像以前一样工作)?

\n

android kotlin-experimental android-jetpack-compose

19
推荐指数
4
解决办法
1万
查看次数