2012-01-19 35 views
6

tôi đã thực hiện một ứng dụng trên ListView trong ứng dụng của tôi, tôi đã sử dụng getListView() method.I đã viết code như sau:Làm cách nào để đặt văn bản ở chính giữa trong ứng dụng Android ListView?

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); 

khi tôi viết mã ở trên vào phương pháp onCreate tôi có thể có khả năng hiển thị danh sách các với một số văn bản. từ mã trên tôi muốn hiển thị văn bản ở giữa trong danh sách và cũng hiển thị văn bản bằng màu.

+0

Chỉ cần sử dụng 'android: layoutGravity =" center "' vào listview của bạn. Nhưng, ở đây bạn đang sử dụng listview mặc định của android. Hãy thử sử dụng listview của riêng bạn thay vì 'android.R.layout.simple_list_item_1' – Praveenkumar

Trả lời

23

bạn đang sử dụng tích hợp trong cách bố trí đó là

android.R.layout.simple_list_item_1 

không thể thay đổi bố cục này. Tuy nhiên bạn có thể cung cấp bố cục hàng của riêng bạn.

hàng của bạn sẽ giống như thế này:

<?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" /> 

nhớ rằng id nên chỉ android:id="@android:id/text1"

và bây giờ bạn có thể đưa cái này cho constructor của ArrayAdapter của bạn:

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

Làm việc tuyệt vời, chỉ một điều tôi thấy là trong Android Studio, 'Thiết kế' sẽ không hiển thị những thay đổi này - nhưng chúng có thể được nhìn thấy khi bạn sử dụng giả lập. –

1

bạn nên cung cấp cho mã của getView chức năng của ArrayAdapter hoặc XML của R.layout.simple_list_item_1, đó là bình thường mà phong cách của mục listview được thiết lập

4

tôi didnot hãy thử, nhưng tôi nghĩ, ghi đè getView trong phương pháp bộ điều hợp và thực hiện như sau:

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); 
Các vấn đề liên quan