如何在ListView的安卓应用程序中将文本设置为居中?

7

我在我的应用程序中实现了一个ListView的应用,我使用了getListView()方法。我的代码如下:

   String[] conversionsadd = getResources().getStringArray(R.array.conversions);
   setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,conversionsadd));
   getListView().setTextFilterEnabled(true);
   getListView().setBackgroundResource(R.drawable.listback2);

当我在onCreate方法中编写以上代码时,我可以显示带有一些文本的列表。从上面的代码中,我想要在列表中将文本居中显示,并以一种颜色显示文本。

只需将 android:layoutGravity="center" 应用于您的列表视图即可。但是,在这里,您正在使用 Android 默认的列表视图。请尝试使用自己的列表视图,而不是 android.R.layout.simple_list_item_1 - Praveenkumar
3个回答

32

你正在使用内置的布局

android.R.layout.simple_list_item_1

这个布局无法更改。但是您可以提供自己的行布局。

您的行应该像这样:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1" 
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:layout_width="fill_parent"
    android:textSize="20sp"
    android:paddingLeft="6dip"
    android:paddingRight="6dip"
    android:gravity="center" />

请记住,id 应该只是 android:id="@android:id/text1"

现在,您可以将其提供给 ArrayAdapter 的构造函数:

ArrayAdapter<String>(this,R.layout.my_custom_layout,conversionsadd);

工作得非常出色,只有一件事我发现在Android Studio中,“设计”不会显示这些更改 - 但是当您使用模拟器时可以看到它们。 - user6613600

6

虽然我没有尝试过,但我认为可以通过在适配器方法中覆盖getView,并执行以下操作来实现:

String[] conversionsadd = getResources().getStringArray(R.array.conversions);
   setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,conversionsadd)
{
    public View getView(AdapterView adapterView, View convertView, int position, long id)
    {

         View view=super.getView(adapterView, convertView, position, id);
         TextView txt=view.findViewById(android.R.id.textView1);
         txt.setGravity(Gravity.CENTER);

         return view;
    }
});
   getListView().setTextFilterEnabled(true);
   getListView().setBackgroundResource(R.drawable.listback2);

1

你应该提供ArrayAdaptergetView函数的代码或R.layout.simple_list_item_1的XML,通常在这里设置列表项的样式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接