这是我的gradle文件:
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion '27.0.0'
useLibrary 'org.apache.http.legacy'
defaultConfig {
multiDexEnabled true
applicationId 'com.example.test'
minSdkVersion 16
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
productFlavors {
}
dexOptions {
incremental true
}
}
dependencies {
compile 'com.google.android.gms:play-services:10.0.1'
compile 'com.android.support:appcompat-v7:26.+'
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha7'
compile 'commons-io:commons-io:1.3.2'
compile 'com.mcxiaoke.volley:library:1.0.19'
compile 'com.facebook.stetho:stetho:1.5.0'
compile 'com.github.PhilJay:MPAndroidChart:v3.0.2'
}
Run Code Online (Sandbox Code Playgroud)
编译项目时得到的完整错误是:
错误:任务':app:transformDexArchiveWithExternalLibsDexMergerForDebug'的执行失败.
java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException:无法合并dex
完整的错误如下:
Executing tasks: [:app:assembleDebug]
AGPBI: {"kind":"warning","text":"The `android.dexOptions.incremental` property is deprecated and it has …Run Code Online (Sandbox Code Playgroud) 我的问题是:无法启动服务Intent {act = .connections.MoodyService} U = 0:找不到
编辑 我已经在源代码中将我的包从连接更改为服务,抱歉让人感到困惑
我的清单 `
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.moody"
android:installLocation="auto"
android:versionCode="0"
android:versionName="0.6.7 alpha" >
<uses-sdk
android:maxSdkVersion="18"
android:minSdkVersion="14"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:allowClearUserData="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="activities.MainActivity"
android:label="@string/app_name" >
</activity>
<activity
android:name="activities.Menu_esq"
android:label="@string/title_activity_menu_esq" >
</activity>
<activity
android:name="activities.BaseActivity"
android:label="@string/title_activity_base" >
</activity>
<activity
android:name="activities.MainView"
android:label="@string/title_activity_main_view" >
</activity>
<activity
android:name="activities.LoginActivity"
android:label="@string/app_name"
android:noHistory="true"
android:windowSoftInputMode="adjustResize|stateVisible" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter> …Run Code Online (Sandbox Code Playgroud) 题
人们如何实现无限数量的页面供您动态滑动?
细节
如果某个应用程序呈现了一天的页面,您可以在前一天向右滑动,在第二天向左滑动.
向右/向左滑动与按下按钮5/6相同.并显示已呈现的页面.同时,也会渲染现在相邻日期的新页面.
最初,我认为这是你使用旋转木马做的事情,例如,使用react-native-snap-carousel库.我想象下面的例子,但使用状态变量而不是图像数组渲染页面.
所以,如果我想渲染一个日期在顶部的页面,我会有一个数组作为状态的一部分,例如:
carouselElements: [ '2019/01/21', '2019/01/22', '2019/01/23']
Run Code Online (Sandbox Code Playgroud)
加入下面的旋转木马,我会得到三个页面,每个页面都显示在顶部.
<Carousel
ref={(c) => { this._carousel = c; }}
data={this.props.carouselElements}
renderItem={this.renderDay}
sliderWidth={sliderWidth}
itemWidth={sliderWidth}
enableSnap
firstItem={1}
initialNumToRender={3}
maxToRenderPerBatch={3}
onBeforeSnapToItem={(index) => this.changeEvent(index)}
useScrollView/>
Run Code Online (Sandbox Code Playgroud)
问题1:阵列无限增长
你可以Day X提前两天开始并渲染相邻的.如果我向左滑动,您可以访问Day X+1并连接Day X+2到数组的末尾并渲染那一天.
该数组变为:
[ 'Day X-1', 'Day X', 'Day X+1', 'Day X+2']
为了提高性能,我可以在3天的窗口内继续检查索引,只渲染选定的日期和相邻的两天.但是数组会无限增长,你的代码最多也是O(n).
问题2:索引
a)预先安排要素:
您可以从,Day X然后向右滑动.你现在正在展示Day X-1.您添加Day X-2到数组的开头并渲染它以准备向右滑动第二次.问题是你在索引0添加的元素你的系统是指向索引0的状态,当它从改变Day X-1到Day X-2,现在这样的页面显示Day X-2代替.
也就是说,当您向右滑动一天时,不是向后移动,而是每次滑动都会移回2天. …
我正在尝试创建一个单一用途的应用程序。因此,我创建了一个BaseActivity,我所有的活动都继承自它。
看起来像
public class LockDeviceActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
private void startLock() {
if(mDevicePolicyManager.isLockTaskPermitted(getPackageName())) {
/**
* If lock task is permitted, we can lock the task. We can use an external DPM like
* TestDPC provided by Google to manage lock task list.
*
* If the lock is obtained using TestDPC, features like status bar, home button, recent
* apps, etc is disabled.
*
* To unlock we can programatically …Run Code Online (Sandbox Code Playgroud)