如何在ListView android应用程序中设置文本中心?

pra*_*gai 6 android text listview get center

我已经在我的应用程序中实现了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);
Run Code Online (Sandbox Code Playgroud)

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

Adi*_*mro 27

你正在使用内置布局

android.R.layout.simple_list_item_1
Run Code Online (Sandbox Code Playgroud)

这种布局无法改变.但是,您可以提供自己的行布局.

你的行应该是这样的:

<?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" />
Run Code Online (Sandbox Code Playgroud)

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

现在你可以把它给你的ArrayAdapter的构造函数:

ArrayAdapter<String>(this,R.layout.my_custom_layout,conversionsadd);
Run Code Online (Sandbox Code Playgroud)


jee*_*eet 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);
Run Code Online (Sandbox Code Playgroud)