How to programmatically set the size of the font in the list item before adding it to the ListView?
12,029
Solution 1
Simply do this in the getView()
method of the Adapter
, to set the font
size.
tv.setTextSize(20.0f);
Solution 2
If you are using xml for setting layout for list_item
and there you have TextView
you can change the size of the text like this:
<TextView
android:id="@+id/text_id"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20sp" /> // This is a size of your text
Solution 3
There's not "size of text" You can change the size of the text inside the TextView: Add:
android:textSize="16sp"
TO your XML Or you can do it by code in the getView() method in the Adapter:
YOUR_TEXTVIEW.setTextSize(16);
Comments
-
Siruk Viktor almost 2 years
I'm interested in how you can change the size of the text in the list and then add it to the ListView. I'm using a list_item with custom layout . The question is how you can set the size of the text before it gets into the ListView. I hope for your help.
list_item.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" xmlns:android1="http://schemas.android.com/apk/res/android"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TextView android:id="@+id/shop_name" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="1" /> <TextView android:id="@+id/shop_address" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="2" /> </LinearLayout> </LinearLayout>
day_list_events.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_gravity="center" android:id="@+id/layout" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:id="@+id/day_and_data" android:text="Перелік клієнтів на сьогоднішній день." android:textStyle="bold" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:id="@+id/help_info" android:text="(Щоб отримати інформацію про клієнта та оформити замовлення - натисніть на відповідного клієнта у списку)" android:textColor="#A0A0A0" /> <ListView android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/day_list_event" > </ListView> </LinearLayout>
DayListEventsActivity.java
import java.util.ArrayList; import java.util.HashMap; import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.content.res.Resources; import android.os.Bundle; import android.view.Window; import android.widget.ListView; import android.widget.SimpleAdapter; public class DayListEventsActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { this.requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.day_list_events); sharedPreferences = getSharedPreferences("impInfo", Context.MODE_PRIVATE); Resources res = this.getResources(); ArrayList<HashMap<String, String>> dayShopsInfo = new ArrayList<HashMap<String, String>>(); String[] shopName = res.getStringArray(R.array.shop_name); String[] shopAddress = res.getStringArray(R.array.shop_address); for(int i = 0; i < shopName.length; i++){ HashMap<String, String> dayShopsInfoCont = new HashMap<String, String>(); dayShopsInfoCont.put(KEY_SHOP_NAME, shopName[i]); dayShopsInfoCont.put(KEY_SHOP_ADDRESS, shopAddress[i]); System.out.println(i+" "+shopName[i]+" "+shopAddress[i]); dayShopsInfo.add(dayShopsInfoCont); } ListView shopList = (ListView)findViewById(R.id.day_list_event); SimpleAdapter shopListAdapter = new SimpleAdapter(this, dayShopsInfo, R.layout.list_item, new String[]{KEY_SHOP_NAME, KEY_SHOP_ADDRESS}, new int[]{R.id.shop_name, R.id.shop_address}); shopList.setAdapter(shopListAdapter); shopList.setChoiceMode(ListView.CHOICE_MODE_SINGLE); } private final String KEY_SHOP_NAME = "shop name"; private final String KEY_SHOP_ADDRESS = "shop address"; private SharedPreferences sharedPreferences; }
UPDATE (Solution).
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.content.Context; import android.content.SharedPreferences; import android.content.res.Resources; import android.os.Bundle; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; public class DayListEventsActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { this.requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.day_list_events); sharedPreferences = getSharedPreferences("impInfo", Context.MODE_PRIVATE); Resources res = this.getResources(); ArrayList<HashMap<String, String>> dayShopsInfo = new ArrayList<HashMap<String, String>>(); String[] shopName = res.getStringArray(R.array.shop_name); String[] shopAddress = res.getStringArray(R.array.shop_address); for(int i = 0; i < shopName.length; i++){ HashMap<String, String> dayShopsInfoCont = new HashMap<String, String>(); dayShopsInfoCont.put(KEY_SHOP_NAME, shopName[i]); dayShopsInfoCont.put(KEY_SHOP_ADDRESS, shopAddress[i]); System.out.println(i+" "+shopName[i]+" "+shopAddress[i]); dayShopsInfo.add(dayShopsInfoCont); } ListView shopList = (ListView)findViewById(R.id.day_list_event); MySimpleAdapter shopListAdapter = new MySimpleAdapter(this, dayShopsInfo, R.layout.list_item, new String[]{KEY_SHOP_NAME, KEY_SHOP_ADDRESS}, new int[]{R.id.shop_name, R.id.shop_address}); shopList.setAdapter(shopListAdapter); shopList.setChoiceMode(ListView.CHOICE_MODE_SINGLE); } public class MySimpleAdapter extends SimpleAdapter{ public MySimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) { super(context, data, resource, from, to); } @Override public View getView(int position, View convertView, ViewGroup parent){ View returnView = super.getView(position, convertView, parent); TextView shopName = (TextView)returnView.findViewById(R.id.shop_name); shopName.setTextSize(20.0f); return returnView; } } private final String KEY_SHOP_NAME = "shop name"; private final String KEY_SHOP_ADDRESS = "shop address"; private SharedPreferences sharedPreferences; }
-
Siruk Viktor over 11 years))) Does not depend on the size of the test should he screen resolution - so I had to change it programmatically
-
Siruk Viktor over 11 yearsThat is, I need to create your own Adapter - inherit a version of a standard adapter and override getView()?
-
Siruk Viktor over 11 yearsSorry - but that does not work - because the adapter you need to pass the id, not the objects.