我的活动中有一个标签作为视图。每个标签代表ListView
。为了进一步说明问题,ListView
s没有任何TextView
个膨胀。由于xml架构中没有ListView
的文本属性,我想知道是否可以在我的活动中执行此操作。如果没有那么你会建议什么?
布局文件:tabworkentry.xml
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:id="@+id/tablayout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- Include action bar -->
<include layout="@layout/actionbar_layout"/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/innerdashboard_bg"
android:layout_weight="1">
<!-- Top 10 starts -->
<ListView
android:id="@+id/Top_10"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingRight="5dp"
android:text="this is a tab" />
<!-- Top 10 ends -->
<!-- Billable starts -->
<ListView
android:id="@+id/Billable"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingRight="5dp"
android:text="this is another tab" />
<!-- Billable ends -->
<!-- Product starts -->
<ListView
android:id="@+id/Product"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingRight="5dp"
android:textSize="14sp"
android:text="this is a third tab" />
<!-- Product ends -->
</LinearLayout>
</TabHost>
和java代码:
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
try {
super.onCreate(savedInstanceState);
setContentView(R.layout.tabworkentry);
TabHost mTabHost = getTabHost();
mTabHost.addTab(mTabHost.newTabSpec("top10").setIndicator("Top 10").setContent(R.id.Top_10));
mTabHost.addTab(mTabHost.newTabSpec("billable").setIndicator("Billable").setContent(R.id.Billable));
mTabHost.addTab(mTabHost.newTabSpec("product").setIndicator("Product").setContent(R.id.Product));
mListView = (ListView)findViewById(R.id.Top_10);
mListView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,Top_10));
mListView = (ListView)findViewById(R.id.Billable);
mListView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,Billable));
mListView = (ListView)findViewById(R.id.Product);
mListView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,Product));
} catch (Exception e) {
System.out.println("Exception" + e.getStackTrace());
Log.d(TAG, "Exception" + e.getStackTrace());
}
}
答案 0 :(得分:4)
您必须创建自己的行布局并添加TextView,然后才能设置文本字体...
使用自定义布局,您可以这样做......
如此膨胀R.layout.row
<强> row.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp" android:typeface="serif"
android:textSize="15dp" >
</TextView>
答案 1 :(得分:1)
在你的方法中,你做不到,这是不可能的。但是,当您创建自己的类时,例如从BaseAdapter
扩展,那么您无法在getView()
方法中更改文字,但仍然需要TextView
。
注意:强>
row.xml
,其中包含TextView
。BaseAdapter
并修改getView()
来电中的字体(颜色,尺寸......)。
您的row.xml
可能如下:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
注2:
在这里你可以设置字体,但只有三种可能的选择(monospace,serif,sans)。
答案 2 :(得分:1)
new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,Billable){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView= super.getView();
TextView text = (TextView) convertView.findViewById(android.R.id.text1);
return convertView;
}
}