如何更改列表视图的文本大小
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。
【讨论】:
以上是关于如何更改列表视图的文本大小的主要内容,如果未能解决你的问题,请参考以下文章