我正在使用带有gradle的javadoc doclet,所以我需要使用package tools.jar,它位于jdk的lib文件夹中(在我的例子中为1.6.0_26).
重点是gradle没有自动获取它,所以我将该工具包添加到我的libs文件夹,然后将其添加到dependencies.gradle.
现在我想直接从我的JDK home转到我的dependencies.gradle.有没有办法做到这一点?我在我的dependencies.gradle中尝试了下一个:
compile files("${System.properties['java.home']}/lib/tools.jar")
Run Code Online (Sandbox Code Playgroud)
但它在编译时没有找到它.
下图(来自官方文档)描述了Android活动的众所周知的生命周期:
在另一方面,当活动是由系统(例如,由于存储器需要被回收的)破坏,该活动的状态有时自动地保存和恢复由所述方法的装置onSaveInstanceState()
和onRestoreInstanceState()
由下图所示(也来自官方文件):
我知道,onSaveInstanceState()
是不是总叫当活动即将被销毁.例如,如果由于用户按下"后退"按钮而导致销毁,则不会保留活动状态.但是在状态被保存并恢复和onSaveInstanceState()
/ onRestoreInstanceState()
被调用的情况下,它们究竟何时被调用?
例如,根据上面的图,onRestoreInstanceState()
可以在之前onStart()
,之后onStart()
但之前onResume()
或之后调用onResume()
.同样,存在几种可能性onSaveInstanceState()
.那他们什么时候打电话呢?
理想情况下,我希望看到一个组合图,显示活动生命周期状态和保存/恢复方法(如果存在).
我是Android新手,我看过使用这些注释的示例代码.例如:
@SmallTest
public void testStuff() {
TouchUtils.tapView(this, anEditTextView);
sendKeys("H E L P SPACE M E PERIOD");
assertEquals("help me.", anEditTextView.getText().toString());
}
Run Code Online (Sandbox Code Playgroud)
那个注释有什么作用?
我需要帮助ConstraintSet
.我的目标是在代码中更改视图的约束,但我无法弄清楚如何正确执行此操作.
我有4 TextView
秒和1个ImageView
.我需要为ImageView
其中一个设置约束TextView
.
check_answer4 = (TextView) findViewById(R.id.check_answer4);
check_answer1 = (TextView) findViewById(R.id.check_answer1);
check_answer2 = (TextView) findViewById(R.id.check_answer2);
check_answer3 = (TextView) findViewById(R.id.check_answer3);
correct_answer_icon = (ImageView) findViewById(R.id.correct_answer_icon);
Run Code Online (Sandbox Code Playgroud)
如果第一个答案是正确的,我需要设置的限制ImageView
,以
app:layout_constraintRight_toRightOf="@+id/check_answer1"
app:layout_constraintTop_toTopOf="@+id/check_answer1"
Run Code Online (Sandbox Code Playgroud)
如果第二个答案是正确的,我需要设置的限制ImageView
,以
app:layout_constraintRight_toRightOf="@+id/check_answer2"
app:layout_constraintTop_toTopOf="@+id/check_answer2"
Run Code Online (Sandbox Code Playgroud)
等等.
android android-layout android-view android-constraintlayout
当我运行Android SDK管理器下载SDK平台时,下载速度为8 KiB/s.下载Android 2.2,API 8等平台需要2个多小时.通过浏览器下载内容没有问题.有谁知道如何解决这个问题?
这个Activity
班有一个setContentView()
方法.该PopupWindow
班有一个getContentView()
方法,但没有别的一样.有没有其他方法来获取活动的主要内容视图?
我希望我DatePicker
的按钮在开始时不可见.当我按下我的魔法按钮时,我想设置可见性(View.Visible);
这里的问题是当我setVisibility(View.GONE)
或setVisibility(View.INVISIBLE)
什么都没有改变并且组件仍然可见时.
final DatePicker dp2 = (DatePicker) findViewById(R.id.datePick2);
final Button btn2 = (Button) findViewById(R.id.btnDate2);
dp2.setVisibility(View.GONE);
dp2.setVisibility(View.INVISIBLE);
btn2.setVisibility(View.GONE);
btn2.setVisibility(View.INVISIBLE);
btn2.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
TextView txt2 = (TextView) findViewById(R.id.txt2);
txt2.setText("You selected " + dp2.getDayOfMonth()
+ "/" + (dp2.getMonth() + 1) + "/" + dp2.getYear());
}
});
Run Code Online (Sandbox Code Playgroud) 我正在测试一个Regex模式匹配信用卡的应用程序,然后突出显示这些数字.我正在使用网站http://regexpal.com/为我的测试创建测试信用卡信用卡号码.我的要求是拥有有效的信用卡号码,它们之间可以有" - "和/或",".我没有成功建立这样的数字,就像我使用网站测试它一样
下面的方案我需要很少的信用卡号码
我有时会看到以下用于提交的堆栈跟踪,当用户没有查看活动时(状态保存后)可能会发生这种情况:
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1327)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1338)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)
Run Code Online (Sandbox Code Playgroud)
看看Android源代码,这很有意义:
private void checkStateLoss() {
if (mStateSaved) {
throw new IllegalStateException(
"Can not perform this action after onSaveInstanceState");
}
if (mNoTransactionsBecause != null) {
throw new IllegalStateException(
"Can not perform this action inside of " + mNoTransactionsBecause);
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我想知道是否有任何方法(除了在(保存/恢复)InstanceState中存储类变量)以检查片段是否将以不合需要的状态提交,这样我可以存储事务以供日后使用在适当的时候提交.
android android-fragments fragmentmanager android-savedstate onsaveinstancestate
Android Studio 3.0 Beta2
classpath 'com.android.tools.build:gradle:3.0.0-beta3'
testCompile 'org.robolectric:robolectric:3.4.2'
Run Code Online (Sandbox Code Playgroud)
我正在使用的测试类无法运行:
@Config(constants = BuildConfig.class, sdk = Build.VERSION_CODES.LOLLIPOP)
@RunWith(RobolectricTestRunner.class)
public class RecipeAdapterTest {
private MainActivity activity;
@Before
public void setup() {
activity = Robolectric.setupActivity(MainActivity.class);
/* Also tried this same Error
activity = Robolectric.buildActivity(MainActivity)
.create()
.resume()
.get();
*/
}
@Test
public void testActivityShouldNotBeNull() {
assertThat(activity, is(notNullValue()));
}
}
Run Code Online (Sandbox Code Playgroud)
这是错误的堆栈跟踪:
android.content.res.Resources$NotFoundException: String resource ID #0x7f0c0020
at android.content.res.Resources.getText(Resources.java:274)
at android.content.res.Resources.getString(Resources.java:360)
at android.content.Context.getString(Context.java:376)
at org.robolectric.shadows.ShadowActivity.getActivityTitle(ShadowActivity.java:100)
at org.robolectric.shadows.ShadowActivity.callAttach(ShadowActivity.java:110)
at org.robolectric.android.controller.ActivityController.attach(ActivityController.java:56)
at org.robolectric.android.controller.ActivityController.of(ActivityController.java:25)
at org.robolectric.Robolectric.buildActivity(Robolectric.java:98)
at org.robolectric.Robolectric.buildActivity(Robolectric.java:94)
at org.robolectric.Robolectric.setupActivity(Robolectric.java:102) …
Run Code Online (Sandbox Code Playgroud) android ×8
android-view ×3
java ×3
unit-testing ×2
build ×1
download ×1
gradle ×1
groovy ×1
regex ×1
regex-greedy ×1
restore ×1
robolectric ×1
sdk ×1
tdd ×1
testing ×1