android怎样对listview中的textview设置中文加粗,textStyle只英文有效
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android怎样对listview中的textview设置中文加粗,textStyle只英文有效相关的知识,希望对你有一定的参考价值。
参考技术A 首先在res/drawable目录下写个配置文件作为各种状态的样式配置,命名bg这个随便:<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android=" http://schemas.android.com/apk/res/android">
<item android:state_focused="false" state_focused="false" android:state_pressed="false" android:state_selected="false"
android:color="@drawable/white" />
<item android:state_focused="true" android:state_pressed="true"
android:color=
"@drawable/black" />
<item android:state_focused="false" android:state_pressed="true"
android:color="@drawable/black" />
<item android:state_selected="true"
android:color="@drawable/black" />
<item android:state_focused="true"
android:color="@drawable/black" />
</selector>
然后在写ListView选项配置文件的时候吧上面写的配置文件添加给这个选项配置文件:
<TextView android:id="@+id/tt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="要显示的文本"
android:textSize="字体大小"
android:textColor="@drawable/bg"<--!此bg就是上面的配置文件名-->"
/>
JavaFX排序ListView
我的应用程序中有一个ListView,我想对条目进行排序。我还希望列表自动排序是否添加了新条目。
为此,我使用SortedList。 Java API说“ObservableList中的所有更改都会立即传播到SortedList。”。
当我在下面运行我的代码时,命令行的输出正是我所期望的。但是ListView没有排序。
我怎样才能做到这一点?谢谢!
public class Test extends Application
{
public static final ObservableList names = FXCollections.observableArrayList();
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
final ListView listView = new ListView(names);
listView.setPrefSize(200, 250);
listView.setEditable(true);
names.addAll("Brenda", "Adam", "Williams", "Zach", "Connie", "Donny", "Lynne", "Rose", "Tony", "Derek");
listView.setItems(names);
SortedList<String> sortedList = new SortedList(names);
sortedList.setComparator(new Comparator<String>(){
@Override
public int compare(String arg0, String arg1) {
return arg0.compareToIgnoreCase(arg1);
}
});
for(String s : sortedList)
System.out.println(s);
System.out.println();
names.add("Foo");
System.out.println("'Foo' added");
for(String s : sortedList)
System.out.println(s);
StackPane root = new StackPane();
root.getChildren().add(listView);
primaryStage.setScene(new Scene(root, 200, 250));
primaryStage.show();
}
}
命令行输出:
Adam
Brenda
Connie
Derek
Donny
Lynne
Rose
Tony
Williams
Zach
'Foo' added
Adam
Brenda
Connie
Derek
Donny
Foo <--
Lynne
Rose
Tony
Williams
Zach
答案
你需要在SortedList
中使用ListView
。即做
final ListView listView = new ListView();
listView.setPrefSize(200, 250);
listView.setEditable(true);
names.addAll("Brenda", "Adam", "Williams", "Zach", "Connie", "Donny", "Lynne", "Rose", "Tony", "Derek");
SortedList<String> sortedList = new SortedList(names);
listView.setItems(sortedList);
另一答案
对于Java 8:
listView.setItems(names.sorted());
另一答案
在Java 8中,您也可以像这样尝试listView.getItems().sort([Some Comparator])
:
listView.getItems().sort((o1,o2)->{
if(o1.equals(o2)) return 0;
if(o1.val > o2.val)
return 1;
else
return 0;
});
以上是关于android怎样对listview中的textview设置中文加粗,textStyle只英文有效的主要内容,如果未能解决你的问题,请参考以下文章
android问题及其解决-优化listView卡顿和怎样禁用ListView的fling