在我的清单中我有:
<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.
在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类在内部完成的?
我经常发现自己需要访问需要引用某些活动的方法.例如,要使用getWindowManager,我需要访问一些Activity.但是,我使用这些方法的代码通常在其他一些没有引用活动的类中.到目前为止,我已经存储了对主要活动的引用,或者将某些活动的上下文传递给了该类.有没有更好的方法来做到这一点?
我需要将一个数字舍入到最接近的5的倍数(向上或向下).例如,以下是数字列表及其旁边需要向上/向下舍入的数字.
12.5 10
62.1 60
68.3 70
74.5 75
80.7 80
Run Code Online (Sandbox Code Playgroud)
数字只会是积极的.
@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
我需要在当前日期设置时间.时间字符串总是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)
这给了我相同的结果.为什么?
我在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) 我有一个字节数组,其中数组中的数据实际上是短数据.字节以小端顺序排序:
3,1,-48,0,-15,0,36,1
转换为短值时会导致:
259,208,241,292
Java中有一种简单的方法可以将字节值转换为相应的短值吗?我可以编写一个循环,它只占用每个高字节并将其移位8位,并将其与低字节一起使用,但这会影响性能.
我有一个应用程序大量使用 Jetpack Compose 的实验功能,因此我必须在可组合项上声明一堆注释。由于这些注释要求调用者也声明它们,所以我最终遇到了以下情况:我有一个包含以下代码的活动:
\nimport 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)\nRun Code Online (Sandbox Code Playgroud)\n避免这种情况的另一种方法是使用@OptIn,但由于每个声明只允许使用一个,因此它不适用于我的具有多个实验功能的情况。
无论如何\xe2\x80\xa6 这在 Kotlin 1.5 中 \xe2\x80\x94 工作得很好。
\n使用 Kotlin 1.6 我收到编译错误:
\n\n\n覆盖上的选择加入要求标记注释需要基本声明上的相同标记
\n
但基本声明位于标准 API 中,我无法更改。\n如何进行编译(并像以前一样工作)?
\nandroid ×7
java ×3
android-jetpack-compose-scaffold ×1
arrays ×1
byte ×1
calendar ×1
endianness ×1
junit ×1
rounding ×1
sdk ×1