想象一下,你有一个LinearLayout里面RelativeLayout包含3个TextViews具有artist, song and album:
<RelativeLayout
...
<LinearLayout
android:id="@id/text_view_container"
android:layout_width="warp_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@id/artist"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Artist"/>
<TextView
android:id="@id/song"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Song"/>
<TextView
android:id="@id/album"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="album"/>
</LinearLayout>
<TextView
android:id="@id/unrelated_textview1/>
<TextView
android:id="@id/unrelated_textview2/>
...
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
当您激活TalkbackReader并单击其中的a TextView时LinearLayout,TalkbackReader将显示"艺术家","歌曲"或"专辑".
但是您可以TextViews通过使用以下方法将前3个放入焦点组:
<LinearLayout
android:focusable="true
...
Run Code Online (Sandbox Code Playgroud)
现在,TalkbackReader将阅读"艺术家歌曲专辑".
2 unrelated TextViews仍然是他们自己而不是阅读,这是我想要实现的行为.
(请参阅Google codelabs示例以供参考)
我现在正试图重新创建这种行为,ConstrainLayout但没有看到如何.
<ConstraintLayout>
<TextView artist/>
<TextView song/>
<TextView album/>
<TextView unrelated_textview1/>
<TextView unrelated_textview2/>
</ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)
将小部件放入"组"似乎不起作用:
<android.support.constraint.Group
android:id="@+id/group"
android:layout_width="wrap_content" …Run Code Online (Sandbox Code Playgroud) 下图是我第一次尝试创建描述用户登录网站的UML类图.

我确信它的设计很差,并且有很多缺陷,但我希望向你们学习如何设计一个像这样的简单登录.我对您使用设计模式以及您将使用哪些模式,如何在设计中实现它以及原因感兴趣.
任何建议,批评,意见和建议将非常感激.提前致谢.
我在我的项目中添加了JPanel一个JScrollPane.
所有工作正常,但有关于使用鼠标滚轮一个问题鼠标滚轮在JPanel的.滚动速度非常慢.如何让它更快?
我的代码是:
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
objCheckBoxList = new CheckBoxList();
BaseTreeExplorer node = (BaseTreeExplorer)projectMain.objCommon.tree.getLastSelectedPathComponent();
if (node.getObject() != null) {
cmbList.setSelectedItem(node.getParent().toString());
} else {
if (node.toString().equalsIgnoreCase("List of attributes")) {
cmbList.setSelectedIndex(0);
} else {
cmbList.setSelectedItem(node.toString());
}
}
panel.add(objCheckBoxList);
JScrollPane myScrollPanel = new JScrollPane(panel);
myScrollPanel.setPreferredSize(new Dimension(200, 200));
myScrollPanel.setBorder(BorderFactory.createTitledBorder("Attribute List"));
Run Code Online (Sandbox Code Playgroud) 我在eclipse的windowbuilder上工作.我的框架是全屏的,因此它不适合WB的设计页面.
JScrollPanes也会出现同样的问题,在Windowbuilder的设计视图中你可以看到滚动条,但是你无法使用它们.
无论如何要缩小WB以便我可以全面查看我的窗口吗?
我使用StrictMode来查找非SDK用法:
if (BuildConfig.DEBUG && Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectNonSdkApiUsage()
.penaltyLog()
.build());
}
Run Code Online (Sandbox Code Playgroud)
现在,我违反了政策:
D/StrictMode: StrictMode policy violation: android.os.strictmode.NonSdkApiUsedViolation: Landroid/view/textclassifier/logging/ SmartSelectionEventTracker$SelectionEvent;->selectionAction(IIILandroid/view/textclassifier/TextClassification;)Landroid/view/textclassifier/logging/ SmartSelectionEventTracker$SelectionEvent;
at android.os.StrictMode.lambda$static$1(StrictMode.java:428)
at android.os.-$$Lambda$StrictMode$lu9ekkHJ2HMz0jd3F8K8MnhenxQ.accept(Unknown Source:2)
at java.lang.Class.getDeclaredMethodInternal(Native Method)
at java.lang.Class.getPublicMethodRecursive(Class.java:2075)
at java.lang.Class.getMethod(Class.java:2063)
at java.lang.Class.getMethod(Class.java:1690)
at bzi.a(SourceFile:11)
at bzq.a(SourceFile:12)
at org.chromium.content.browser.selection.SmartSelectionClient.<init>(SourceFile:5)
at bzZ.a(Unknown Source:7)
at org.chromium.android_webview.AwContents.e(SourceFile:193)
at org.chromium.android_webview.AwContents.d(SourceFile:153)
at org.chromium.android_webview.AwContents.<init>(SourceFile:81)
at uY.run(SourceFile:15)
at ahv.a(SourceFile:13)
at ahw.run(SourceFile:2)
at org.chromium.base.ThreadUtils.b(SourceFile:31)
at ahv.a(SourceFile:7)
at com.android.webview.chromium.WebViewChromiumFactoryProvider.b(SourceFile:6)
at com.android.webview.chromium.WebViewChromium.init(SourceFile:111)
at android.webkit.WebView.<init>(WebView.java:678)
at android.webkit.WebView.<init>(WebView.java:604)
at android.webkit.WebView.<init>(WebView.java:587)
at android.webkit.WebView.<init>(WebView.java:574)
at java.lang.reflect.Constructor.newInstance0(Native Method)
at …Run Code Online (Sandbox Code Playgroud) 作为XML解析的新手,我正在尝试理解不同的技术.针对不同需求存在大量不同的技术:
仅举几个.
DOM和SAX似乎是解析和处理XML的低级方式,所以我决定专注于那些在不同来源中被提及最多并且是低级的:
DOM,SAX,JAXP.
我读过有关,一般在这里解析器上计算器,JAXP教程从Oracle,XML的解析一般,等等.
我也尝试了一些类似德语和其他的教程.
我现在正在抓一点DOM和SAX,但是使用JAXP的原因仍然超出我的意思.它似乎更像是一个在内部使用DOM,SAX,...的接口,但为什么不直接使用DOM或SAX呢?
在外行术语中使用JAXP有什么好处?
我正在为我的大学研究项目.该应用程序永远不会投放市场,仅用于研究.
我使用Google Homescreen示例代码制作了一个主屏幕应用.在那里,我做了一个锁屏活动.在那里,用户不应该通过按Home,Back等来退出锁定.后退按钮似乎被禁用,但主页按钮不是.我尝试过几种来自互联网和stackoverflow的解决方案,这些解决方案都无法正常工作.
这是重要的代码:
(注意:Logcat显示"按下按钮:4"用于后退按钮,但没有用于主页按钮!)
在我的锁屏活动中:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.v(TAG, "BUTTON PRESSED: " + new Integer(keyCode).toString());
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
return true;
} else if ((keyCode == KeyEvent.KEYCODE_CALL)) {
return true;
}
else if ((keyCode == KeyEvent.KEYCODE_HOME)){
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
super.onAttachedToWindow();
}
Run Code Online (Sandbox Code Playgroud)
从Android版本4开始,onAttachedToWindow()方法似乎无效.如何禁用homebutton?
编辑:清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.home" >
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.SET_WALLPAPER" …Run Code Online (Sandbox Code Playgroud) 我试图在Windows 7上使用Android Studio 2.2.3的收藏夹和书签来浏览我们的代码库.
我打开了一个项目,保存收藏夹和书签工作正常.但是当我打开另一个项目时,当我的第一个项目也打开然后关闭其中一个项目时,关闭的项目会丢失所有收藏夹,书签以及我打开的文件夹和标签.
AS每次启动时都会一直要求我添加VCS root.
虽然我搜索过,但找不到任何描述我问题的来源.
我已经将我的所有项目复制到一个新文件夹中并给了我自己对该文件夹的所有权限,但这并没有解决我的问题,所以我认为权限不是问题所在.
我的假设是,如果您使用多个实例,Android Studio可能会遇到问题.
所以我去尝试将其设置为仅使用一个窗口:
但是这个设置不断被忽略,AS为每个项目打开了一个新窗口.
我通过删除文件夹重置Android Studio的所有设置 C:\<username>\.AndroidStudio2.2.
然后我重新启动Android Studio并没有导入任何新设置.
使用此配置,我的问题仍然存在.
为了重现'bug',请执行以下操作:
File -> Open(不File -> Open recent!)File -> OpenFile -> Open此时所有标签/书签/收藏夹都应该消失.
Vadim Kotov已经证实他的Android Studio也出现了这个问题,所以我怀疑AS中存在一个错误.
如何修复消失的收藏夹,书签,打开的文件夹和标签?
我正在做一个大项目,我们使用TextViews 来显示文本和提示。
使用对讲(可访问性)时,我注意到 a 上的提示TextView被读取了两次。
此外,即使 中有文本TextView,提示仍将被读取。
当我使用 an 时EditText,只有第二个问题仍然存在(输入的文本,提示仍被读取)。这似乎是正常的(但令人困惑的)Android 行为,因为像 PlayStore 这样的 Google 应用程序也会这样做。
但是为什么TextView阅读提示两次,而EditText不是?
PS:我知道从 切换TextView到的可能性EditText,但由于我们也在使用自定义视图,这在很大程度上取决于TextView,因此这不是一个可行的选择。
我也知道使用label for,但我对技术背景更感兴趣,为什么TextView阅读提示两次。
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="test"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
Run Code Online (Sandbox Code Playgroud)
我正在阅读有关接口的 Java 文档,并阅读了有关默认方法的章节。据我了解,当您定义一个接口并随后向其添加方法时,所有实现该接口的类都会中断,并且需要实现新方法。
因此,文档简要提到静态方法作为缓解此问题的选项,但也指出,它们将被视为“实用方法”而不是必需的:
如果将它们添加为静态方法,那么程序员会将它们视为实用方法,而不是必要的核心方法。
为什么会出现这种情况/为什么它们会被视为“不重要”?
android ×4
java ×4
talkback ×2
class-design ×1
dom ×1
eclipse ×1
fullscreen ×1
homescreen ×1
jaxp ×1
jpanel ×1
jscrollpane ×1
lockscreen ×1
mousewheel ×1
oop ×1
reflection ×1
resize ×1
sax ×1
static ×1
swing ×1
uml ×1
xml ×1
zoom ×1