嗨,我正在尝试创建类似于gmail app导航抽屉的导航抽屉.我关注开发者网站,但它只指定了基本实现.但我需要根据我的规格自定义导航.
我怎样才能做到这一点?
我在android中使用Snackbar并且我已经实现了一个动作,以便用户可以撤消动作(动作是清除列表视图中的所有项目).将项目恢复并添加回列表视图已经完成并且工作正常.
我的问题是,项目存储在sqlite数据库中,如何从表中删除项目?(我怎么知道用户没有点击撤销按钮,这样我就可以从数据库中完全删除数据).
这是OnOptionsItemSelcted()中的代码
case R.id.action_clear:
final List<Word> temp = new ArrayList<Word>(data);
data.clear();
adapter.notifyDataSetChanged();
View view = findViewById(R.id.layoutFavWords);
Snackbar.make(view,"Deleted Saved Selection.", Snackbar.LENGTH_LONG).
setAction("Undo", new OnClickListener() {
@Override
public void onClick(View v) {
for(Word word:temp)
data.add(word);
adapter.notifyDataSetChanged();
}
}).show();
break;
Run Code Online (Sandbox Code Playgroud)
因此,如果用户在快餐栏的可见时段内没有单击撤消按钮,那么我需要从数据库中永久删除数据.
对此有何解决方案?
java android android-support-library snackbar android-design-library
我对这段代码有2个问题
//方法1
static byte m1() {
final char c = 'b'-'a';
return c;
}
Run Code Online (Sandbox Code Playgroud)
//方法2
static byte m3(final char c) {
return c; // 3
}
Run Code Online (Sandbox Code Playgroud) 我正在使用最新的稳定版Android Studio-3.4。当我构建一个调试apk(不带proguard)时,它工作正常。但是问题出在发布版本时。默认情况下,它使用最新的R8收缩器。
它给了我一个内存不足的错误。我尝试更改gradle.properties文件中的值,如下所示,这在执行transformClassesAndResourcesWithR8ForRelease任务时发生。
org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=2g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
Run Code Online (Sandbox Code Playgroud)
它仍然给我同样的错误。
最后,我尝试通过在gradle.properties文件中使用此行来禁用R8,
android.enableR8=false
Run Code Online (Sandbox Code Playgroud)
但是仍然在构建任务中,我可以看到它正在执行此任务transformClassesAndResourcesWithR8ForRelease并给我同样的错误。
这些是错误日志
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':appName:transformClassesAndResourcesWithR8ForRelease'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:95)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:119)
at org.gradle.api.internal.tasks.execution.ResolvePreviousStateExecuter.execute(ResolvePreviousStateExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:93)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:45)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:94)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:56)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:67)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:49)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:315)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:305)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:101)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:336)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:322)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193) …Run Code Online (Sandbox Code Playgroud) 我想从表(item2)中的表(item1)和不在该item2表中的日期插入一些值.
如何使用select语句将SQL插入语句写入语句来实现?
例如:
INSERT into item1(date, name, qty)
values(datevalue, select col1, col2 from item2);
Run Code Online (Sandbox Code Playgroud)
这不起作用.我该怎么做才能解决这个问题?
insert into daily_stock(date, product_id, name, weight, qty, free_issues, sales_price,
purchased_price, category, last_purchased_date)
select
**'"+today+"'**,
productId, name, weight, newQty, freeIssues, NewSalesPrice,
NewPurchasePrice, category, datePurchased
from product
Run Code Online (Sandbox Code Playgroud)
我正在使用java,今天是一个字符串变量,仍然没有数据插入,什么是错的?
我想在调用notifyItemChanged时更新recyclerview的视图.问题是我不想刷新整行而只想刷新行的视图.(以避免行的闪烁效果)
有一个名为notifyItemChanged(int,payload obj)的方法.
我可以用它来实现吗?如果是这样怎么办?
我在我的 android 应用程序中使用应用程序包 - 动态模块。在项目中,我有一个主模块和一个子模块。在子模块的 values -> styles.xml 中,我定义了自定义样式以启用一些活动动画。
<style name="SampleActivityTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="buttonStyle">@style/CustomButtonStyle</item>
<item name="android:windowContentTransitions">true</item>
<item name="android:windowActivityTransitions">true</item>
<item name="android:windowEnterTransition">@transition/activity_transition_note</item>
<item name="android:windowExitTransition">@transition/activity_transition_note</item>
<item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
<item name="android:windowSharedElementExitTransition">@android:transition/move</item>
</style>
Run Code Online (Sandbox Code Playgroud)
在清单中,我使用主题属性使用这种样式,
<activity
android:name=".activity.SampleActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|locale"
android:label=""
android:screenOrientation="portrait"
android:theme="@style/SampleActivityTheme">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
但是当我构建项目时,我收到如下编译错误,
/Users/chathura/Branches/AppBundle/sample_module/build/intermediates/merged_manifests/debug/AndroidManifest.xml:778: error: resource style/SampleActivityTheme (aka lk.sample.mysampleapp:style/SampleActivityTheme) not found.
Run Code Online (Sandbox Code Playgroud)
这个问题的原因是什么?
任何建议表示赞赏。谢谢。
Has anyone experienced issues with ConstraintLayout group visibility?
I'm using ConstraintLayout 1.1.3 and I'm setting the visibility of group in both XML layout and java code. But it does not change the visibility status. It is always visible.
This is the layout file
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/iv_message_icon_activity_dictionary"
android:layout_width="@dimen/message_icon_width"
android:layout_height="@dimen/message_icon_height"
android:layout_marginBottom="@dimen/message_text_view_margin_top"
android:contentDescription="@string/app_name"
android:src="@drawable/icon_error"
app:layout_constraintBottom_toTopOf="@+id/tv_message_activity_dictionary"
app:layout_constraintEnd_toEndOf="@id/tv_message_activity_dictionary"
app:layout_constraintStart_toStartOf="@id/tv_message_activity_dictionary" />
<TextView
android:id="@+id/tv_message_activity_dictionary"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginStart="20dp"
android:gravity="center"
android:textColor="@color/black"
android:textSize="@dimen/medium_text_size"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="@string/msg_no_internet" /> …Run Code Online (Sandbox Code Playgroud) android android-layout android-constraintlayout android-app-bundle
我在我的 Android 项目中使用 GraphQL。在将结果(由 Apollo 在 build 文件夹中自动生成的类的对象)传递给其他活动时,我遇到了麻烦。
如何使这些自动生成的类可打包?
在 Android 12 中,需要指定 PendingIntent 的可变性。在签名屏幕中,使用 HintRequest 类,并 通过getHintPickerIntent方法返回PendingIntent。代码如下,
HintRequest hintRequest = new HintRequest.Builder().setPhoneNumberIdentifierSupported(true).build();
PendingIntent intent = Credentials.getClient(activity).getHintPickerIntent(hintRequest);//crashes here on android 12
Run Code Online (Sandbox Code Playgroud)
logcat中的错误是这样的,
java.lang.IllegalArgumentException: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
Run Code Online (Sandbox Code Playgroud)
我的问题是如何在创建待处理意图后设置可变性标志。
android ×8
java ×2
android-12 ×1
android-r8 ×1
apollo ×1
final ×1
insert ×1
methods ×1
snackbar ×1
sql ×1