我有以下 AutoCompleteTextView:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/offering_type_dropdown_layout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/date_card_spacing"
android:layout_marginStart="4dp"
app:layout_constraintStart_toEndOf="@+id/offering_details_header_image"
app:layout_constraintEnd_toStartOf="@+id/offering_details_date_layout"
app:layout_constraintTop_toTopOf="parent"
android:hint="@string/offering_type_hint">
<AutoCompleteTextView
android:id="@+id/offering_details_type_dropdown"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:inputType="textNoSuggestions"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
android:cursorVisible="false"/>
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
在我的 Activity 中onCreate
,我像这样填充 AutoCompleteTextView:
String[] TYPES = new String[] {getString(R.string.burnt_offering), getString(R.string.meal_offering), getString(R.string.peace_offering), getString(R.string.sin_offering)};
ArrayAdapter<String> adapter = new ArrayAdapter<>(OfferingInputActivity.this, R.layout.offering_types_dropdown, TYPES);
mOfferingTypeCombo.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
然后我使用 Room 数据库填充视图并预选其中一个值。在 Room 回调中,我执行以下操作:
mOfferingTypeCombo.setText(getString(R.string.meal_offering)), false);
Run Code Online (Sandbox Code Playgroud)
初始运行时一切正常,下拉菜单显示正确:
现在我将设备旋转到横向。执行与上面完全相同的代码,但这一次,下拉框仅显示当前选择:
由于某种原因,适配器中的所有其他条目都消失了。setAdapter(null)
在我设置适配器之前,我已经尝试过一些技巧,但没有成功。有人能告诉我为什么在旋转后,即使执行了完全相同的代码,下拉列表也缺少条目吗?
我想在Android Studio中使用Firebase助手,它应该位于工具菜单中.我使用Android Studio 3.1 for Windows.当我点击工具菜单时,我得到:
没有Firebase菜单.所以我尝试通过Help - > Find Action调用它...当我输入Firebase时,我收到以下错误消息:
java.util.NoSuchElementException
at com.google.common.collect.Iterators$1.next(Iterators.java:81)
at com.google.services.firebase.DependencyStateManager.getDependencyState(DependencyStateManager.java:60)
at com.google.services.firebase.DependencyStateManager.init(DependencyStateManager.java:109)
at com.android.tools.idea.assistant.view.StatefulButton.<init>(StatefulButton.java:122)
at com.android.tools.idea.assistant.view.TutorialStep.<init>(TutorialStep.java:106)
at com.android.tools.idea.assistant.view.TutorialCard.redraw(TutorialCard.java:153)
at com.android.tools.idea.assistant.view.TutorialCard.<init>(TutorialCard.java:90)
at com.android.tools.idea.assistant.view.FeaturesPanel.<init>(FeaturesPanel.java:84)
at com.android.tools.idea.assistant.AssistSidePanel.<init>(AssistSidePanel.java:81)
at com.android.tools.idea.assistant.AssistToolWindowFactory.createToolWindowContent(AssistToolWindowFactory.java:37)
at com.android.tools.idea.assistant.OpenAssistSidePanelAction.lambda$openWindow$0(OpenAssistSidePanelAction.java:59)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:424)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:407)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:822)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:650)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:366)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Run Code Online (Sandbox Code Playgroud)
我还检查过Firebase插件是否已激活.出了什么问题?
我有一个TextView
图像的右侧.我试图在图像旁边放置一些长文本,但是这个文本应该自动结束,最后添加"...".但是,这不起作用.我用这个布局:
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="8dp">
<ImageView
android:id="@+id/file_icon"
android:layout_width="250px"
android:layout_height="250px"
android:layout_gravity="center"
android:clickable="true"
android:scaleType="centerInside"
android:src="@drawable/ic_launcher"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/file_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="1"
android:text="This is a very long title and I hope I have the dots to break it"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@+id/file_type"
app:layout_constraintVertical_chainStyle="packed"
app:layout_constraintStart_toEndOf="@+id/file_icon"
app:layout_constraintWidth_default="wrap"/>
<TextView
android:id="@+id/file_type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="Type"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/file_title"
app:layout_constraintLeft_toRightOf="@+id/file_icon" />
<ImageView
android:id="@+id/file_download"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_gravity="center"
android:clickable="true"
android:scaleType="centerInside"
android:src="@drawable/ic_action_download"
app:layout_constraintTop_toBottomOf="@+id/file_title"
app:layout_constraintRight_toRightOf="parent" />
Run Code Online (Sandbox Code Playgroud)
结果是这样的:
我正在开发一个管理PDF的Android应用。我知道Cloudinary允许用户上传PDF并自动为上传的PDF生成缩略图(请参见此处)。Firebase存储或Cloud Firestore是否提供类似功能?如果没有,建议使用任何推荐的第三方工具来完成此任务?谢谢!
我有一个3级的TreeTableIView。我只想在叶子上显示复选框,而所有其他单元格保持空白。到目前为止,我已经创建了2列:
第一列包含层次结构:
TreeTableColumn<AttributeRow, String> attributeColumn = new TreeTableColumn<>("Attributes");
attributeColumn.setPrefWidth(200);
attributeColumn.setCellValueFactory(
(TreeTableColumn.CellDataFeatures<AttributeRow, String> param) ->
new ReadOnlyStringWrapper(param.getValue().getValue().getAttributeName())
);
Run Code Online (Sandbox Code Playgroud)
第二列应仅在叶子上包含CheckBoxes:
TreeTableColumn<AttributeRow, Boolean> companyColumn = new TreeTableColumn<>(companyGroup);
companyColumn.setPrefWidth(200);
companyColumn.setCellFactory(CheckBoxTreeTableCell.forTreeTableColumn(companyColumn));
companyColumn.setCellValueFactory(param -> {
if (param.getValue().getValue().getCompanyGroups() == null) {
return new SimpleBooleanProperty(true);
} else {
return new SimpleBooleanProperty(false);
}
});
Run Code Online (Sandbox Code Playgroud)
这是我要实现的目标:
有没有一种方法只能在叶子上显示CheckBoxes,而其他单元格是空的?谢谢!
我想对我的数据库进行以下查询:
SELECT type, COUNT(*) FROM offerings GROUP BY type
Run Code Online (Sandbox Code Playgroud)
此查询适用于 Sqlite 浏览器。现在我想在我的中使用这个查询Dao
:
@Query("SELECT type, COUNT(*) FROM offerings GROUP BY type")
LiveData<Map<String, Integer>> getOfferingsGroupedByType();
Run Code Online (Sandbox Code Playgroud)
但我收到错误:...不确定如何将游标转换为该方法的返回类型
如何查询包含 2 列的表?--> 即 [type, count(type)] ?