有很多关于通过XML创建或自定义Android主题样式的文档和教程,但是还没有找到在代码中创建它的方法.关于如何在代码而不是xml中创建样式的任何想法?
这是示例XML,需要在代码中以编程方式创建:
<resources>
<style name="AppTheme" parent="android:Theme.Material">
<item name="android:colorPrimary">@color/primary</item>
<item name="android:colorPrimaryDark">@color/primary_dark</item>
<item name="android:colorAccent">@color/accent</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud) 可能重复:
方法何时应该是静态的?
通常在为类编写静态方法时,可以使用该方法访问该方法ClassName.methodName.在这个简单的例子中使用'static'的目的是什么?为什么应该/不应该在这里使用它?私有静态也失败了使用静态的目的?
public class SimpleTest {
public static void main(String[] args) {
System.out.println("Printing...");
// Invoke the test1 method - no ClassName.methodName needed but works fine?
test1(5);
}
public static void test1(int n1) {
System.out.println("Number: " + n1.toString());
}
//versus
public void test2(int n1) {
System.out.println("Number: " + n1.toString());
}
//versus
private static void test3(int n1) {
System.out.println("Number: " + n1.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
我看了几个教程.例如http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
我对它的理解是,不是创建一个类的实例来使用该方法,而是可以使用类名 - 在某些情况下节省内存,每次使用特定方法构建对象都没有意义.
我有一个简单的地图,需要创建一个列表,该列表根据给定列表中的升序排序:
Map auto = new HashMap();
auto.put("Merc", 3);
auto.put("Citroen", 5);
auto.put("Opel", 10);
auto.put("BMW", 20);
List<String> given = new ArrayList<>();
given.add("Opel");
given.add("BMW");
given.add("Citroen");
Run Code Online (Sandbox Code Playgroud)
所以给定的清单需要排序,以便它按顺序排列:雪铁龙,欧宝,宝马.想到:
这看起来很可怕:/,任何建议,也许更好的数据结构使用?
在我创建了一个控件,它有一个文本框和一个附加到它的文本更改事件处理程序 - 这是在 xaml 中。
问题:当控件加载时,文本更改事件被触发,我不希望它在加载控件时发生,只有当我通过键入某些内容实际使其在控件上更改时才发生。
你的专业人士建议我做什么?:)