在我的NavigationView中,我有一个标题布局,其id为'viewId',带有活动按钮.要设置这些按钮,我在活动中执行以下操作onPostCreate:
final View panel = findViewById(R.id.viewId);
panel.setOnClickListener(new View.OnClickListener() {
... setup goes here ...
});
Run Code Online (Sandbox Code Playgroud)
使用新版本的android支持库(23.1.0),无法找到视图,它返回null.以前的版本运行良好.这是一个错误还是我使用此功能错了?如果是这样,如何访问标题布局并向其添加行为?
android android-support-library android-design-library navigationview
我正在将ListViews迁移到RecyclerViews.使用listviews,我使用此处描述的常用技术来存储和恢复活动之间的滚动位置.
如何使用RecyclerViews做同样的事情?在RecyclerView.onSaveInstanceState()似乎有protected访问权限,因此无法直接使用.
我有一个Android上的应用程序,使用像Dropbox这样的云存储进行一些文件共享.开始分享我扔android.intent.action.SEND.在显示的列表中,我看到了Google云端硬盘应用(之前已安装),因此我尝试将文件发送给它 - 它运行正常,该文件显示在云端硬盘列表中.
然后,在另一台设备上我想读取这个文件.我抛出
android.intent.action.GET_CONTENT意图,选择驱动器,然后不知道如何获取文件.我收到这样的Uri:
content://com.google.android.apps.docs.files/exposed_content/6jn9cnzdJbDywpza%2BlW3aA%3D%3D%0A%3BRV%2FaV94o%2FCcW4HGBYArtwOdHqt%2BrsYO4WmHcs6QWSVwp%2FXogkRAgit7prTnfp00a%0A
Run Code Online (Sandbox Code Playgroud)
我不知道如何转换为物理文件路径.我怎么能从这里得到文件内容?
我在内容提供商周围玩,可以获取文件名,但不是完整路径或其他任何内容.
对于Dropbox,我得到file://风格uri,笔直,简单,效果很好.
我们的应用程序中的代码类似于以下内容
val pendingIntent = PendingIntent.getActivity(ctx, id.toInt(), intent, PendingIntent.FLAG_CANCEL_CURRENT)
val builder = NotificationCompat.Builder(ctx, Channel.TEST_CHANNEL.channelId)
builder.setTicker(tickerText)
.setContentTitle(contentTitle)
.setContentText(contentText)
.setVibrate(vibrate)
.setSmallIcon(icon)
.setAutoCancel(true)
.setLights(-0xff0100, 300, 1000)
.setSound(uri)
.setContentIntent(pendingIntent)
.setStyle(NotificationCompat.BigTextStyle().bigText(contentText))
.addAction(R.drawable.ic_notification, ctx.getString(R.string.notification), piAction)
val notification = builder.build()
val nf = ctx.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
nf.notify(NOTIFICATION_TAG, id.toInt(), notification)
}
Run Code Online (Sandbox Code Playgroud)
从最近开始,我们注意到某些运行Android 8+的设备上的通知在显示后开始消失,没有用户的交互.设置auto-cancel为有false帮助,但用户体验降低.
这id是数据库中的唯一项ID.这可能是需要注意的重要事项 - 从技术上讲,我们可以id通过用户显示,删除/取消通知,以及稍后再次使用具有相同ID的类似通知的时间.这可能是原因吗?
我有一个EditText,lineSpacingExtra设置为8dp.当我用这个EditText和预设文本打开一个页面时,行间距很好.但是当我在同一页面上点击EditText的末尾并开始输入时,行间距似乎被忽略了.
这是一个错误还是我错过了什么?

添加了代码段.我想,没什么特别的.
<EditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:padding="8dip"
android:scrollbars="vertical"
android:fadingEdge="vertical"
android:gravity="top"
android:lineSpacingExtra="8dip"
android:lineSpacingMultiplier="2"
android:textSize="18sp"
android:capitalize="sentences"
android:inputType="textCapSentences|textMultiLine"
/>
Run Code Online (Sandbox Code Playgroud)
更新:看起来Android 5 Lollipop 附带了这个bug
刚开始使用Kotlin,您可以在其中拥有主构造函数和辅助构造函数。这个问题可能听起来很简单,但我找不到答案(我已阅读文档中的“构造函数”部分) -为什么?
基本上,我试图理解主要和次要背后的想法是什么。它们的使用方式有什么区别(似乎没有,所以为什么要分开)?
我们有一个使用外部存储来存储一些临时文件的应用程序:图像,二进制数据。直到最近,用于该代码的代码已经运行了几年,没有太大的变化。在Android Q上不起作用:
File f = new File(Environment.getExternalStorageDirectory().toString() + File.separator + MainActivity.APP_DIR)
f.mkdirs();
// do sth with f
Run Code Online (Sandbox Code Playgroud)
在mkdirs现在只返回false。
清单中提供了所需的权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)
该代码可在Android的早期版本上正常运行。这种访问类型在系统级别上有变化吗?如果是这样,解决方法是什么?