如何更改列表视图的文本大小

Posted

技术标签:

【中文标题】如何更改列表视图的文本大小【英文标题】:how to change text size of listview 【发布时间】:2013-12-25 17:20:12 【问题描述】:

我正在使用列表活动从 SQLITE 检索数据。但我无法设置列表视图的字体大小。请帮帮我。

public class CartList extends ListActivity 
    private ArrayList<String> results = new ArrayList<String>();
    public void onCreate(Bundle bundle) 
        super.onCreate(bundle);
        setContentView(com.example.easyshopping.R.layout.cart);
        openAndQueryDatabase();
        displayResultList();
    
    private void displayResultList() 
        setListAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, results));
        getListView().setTextFilterEnabled(true);   
        private void openAndQueryDatabase() 
        try 
            SQLiteDatabase database = openOrCreateDatabase("ORCL", MODE_PRIVATE, null);
            Cursor c = database.rawQuery("SELECT title,qty,price FROM CART;", null);
                         if (c != null ) 
                int totalPrice=0;
                if  (c.moveToFirst()) 
                    do 
                        String title = c.getString(c.getColumnIndex("title"));
                        int qty = c.getInt(c.getColumnIndex("qty"));
                        int price = c.getInt(c.getColumnIndex("price"));
                        int pricePerTitle=price*qty;
                        results.add("Title: " + title + ",  Quantity: " + qty+",  Price: $"+pricePerTitle);
                        totalPrice=totalPrice+pricePerTitle;
                    while (c.moveToNext());
                
               TextView tTotalPrice=(TextView)findViewById(com.example.easyshopping.R.id.txttotalprice);
                String total= Integer.toString(totalPrice);
               tTotalPrice.setText(total);
            
         catch (SQLiteException se ) 
            Log.e(getClass().getSimpleName(), "Could not create or Open the database");
        

    

cart.xml

LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_
              android:layout_>
    <RelativeLayout
            android:layout_
            android:layout_
            android:gravity="center" android:layout_gravity="center">
        <ImageView
                android:layout_
                android:layout_
                android:background="@drawable/shoppinglist"

                ></ImageView>

            </RelativeLayout>

    <ListView
            android:layout_
            android:layout_
            android:layout_weight="1"
            android:id="@android:id/list"
            ></ListView>

    <RelativeLayout
            android:layout_
            android:layout_
            android:gravity="center" android:layout_gravity="center" >
       <TextView
               android:layout_
               android:layout_
               android:text="Total Price is:$ "
               android:textColor="#f3f607"
               android:textSize="10dp"
               android:id="@+id/txttotal"
               ></TextView>
        <TextView
                android:layout_
                android:layout_
                android:textColor="#f3f607"
                android:textSize="10dp"
                android:layout_toRightOf="@+id/txttotal"
               android:id="@+id/txttotalprice"></TextView>
        <Button
                android:layout_
                android:layout_
                android:layout_gravity="center_horizontal"
                android:text="send your Shopping List."
                android:textSize="12dp"
                android:id="@+id/cartButton"
                android:layout_below="@+id/txttotal"></Button>

            </RelativeLayout>

列表视图中的字体很大。

【问题讨论】:

【参考方案1】:

进入布局文件夹并创建一个名为 mytextview.xml 的新 xml 文件(无论你想命名它)

    <?xml version="1.0" encoding="utf-8"?>
    <TextView xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@android:id/text1"  
            android:paddingTop="2dip" 
            android:paddingBottom="3dip" 
        android:layout_ 
        android:layout_
        android:textSize="2dp" /> 

在代码中

    setListAdapter(new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, results));

改成

    setListAdapter(new ArrayAdapter<String>(this,
            R.layout.mytextview, results));

【讨论】:

我使用 cart.xml 而不是 android.R.layout.simple_list_item_1,查看我的代码。 我是说您需要将 setListAdapter 中的默认 textView 布局替换为您在回答中所写的自定义布局。有什么问题? 哦,我知道了,让我试试。 sp 是与尺度无关的像素,而 dp 或 dip 是与密度无关的像素。如果您需要跨设备的固定一致性,Android 规范建议使用 sp 作为文本尺寸。 我正在努力解决我的问题!这真的很有帮助。谢谢!【参考方案2】:

不要让布局(相对布局/约束布局)保留在新的布局资源文件中。

那会报错。 只有具有自定义设置的 Textview。

【讨论】:

以上是关于如何更改列表视图的文本大小的主要内容,如果未能解决你的问题,请参考以下文章

如何在文本视图中更改单个单词的文本大小和颜色[重复]

如何从字符串列表更改信息窗口中的文本视图文本

在android中更改列表视图的文本颜色

在点击其各自的父项(列表视图的项目)后,如何更改标签的文本颜色?

更改集合视图单元格中文本 NSString 的大小

如何检测表视图中的项目何时更改?