android change listview font and color

后端 未结 5 1675
轮回少年
轮回少年 2020-12-07 02:40

I\'ve found loads of different ways of accomplishing this but I\'m not sure what\'s the best for my scenario.

This is my Java code for the listview:

         


        
相关标签:
5条回答
  • 2020-12-07 03:13

    I found out the solution :D

        public class Myadapter extends BaseAdapter {
    
        AssetManager assetManager = getAssets(); 
    
        LayoutInflater lif;
        ImageView sideArrow;
        TextView tv;
    
    
        public Myadapter(Context ctx) {
            lif = (LayoutInflater) ctx.getSystemService(LAYOUT_INFLATER_SERVICE);
    
    
        }
    
        @Override
        public int getCount() {
    
            return favarets.size();
        }
    
        @Override
        public Object getItem(int position) {
            return position;
        }
    
        @Override
        public long getItemId(int position) {
            return position;
        }
    
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
    
            View vi = convertView;
            if (convertView == null)
                vi = lif.inflate(R.layout.inflate, null);
            sideArrow = (ImageView) vi.findViewById(R.id.imageViewsidemark);
    
    
            tv = (TextView) vi.findViewById(R.id.textFav);
            tv.setText(favarets.get(position));
    
            final Typeface tvFont = Typeface.createFromAsset(assetManager, "OPTIMA.TTF");
            tv.setTypeface(tvFont);
            tv.setTextColor(Color.BLACK);
    
            return vi;
        }
    
    }
    
    0 讨论(0)
  • 2020-12-07 03:22

    you need to create a custom adapter.

    check this answer

    and then have a custom xml too.

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content">
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:id="@+id/textView"
        android:textSize="20px" android:paddingTop="10dip" android:paddingBottom="10dip"/>
    </LinearLayout>
    

    then set the custom adapter to your listview.

    listAdapter = new CustomListAdapter(YourActivity.this , R.layout.custom_list , mList);
    mListView.setAdapter(listAdapter);
    
    0 讨论(0)
  • 2020-12-07 03:25

    The list view itself isn't responsible for drawing the items, it uses an adapter to create the list items. This adapter creates a view to display the list item when required. To change the font used to display the list item, you have to change the adapter to return a view with the new font. This can be done in the Adapter.getView method. If you are currently using a standard Adapter implementation, you may need to subclass it (or completely replace it).

    0 讨论(0)
  • 2020-12-07 03:26

    Just set it to the TextView which you are inflating set the typeface in adapter or in the xml layout.

    0 讨论(0)
  • 2020-12-07 03:35

    Simply, instead of using the inbuild xml file in the SKD

    `ArrayAdapter ad=new ArrayAdapter(GuestActivity.this,android.R.layout.simple_list_item_1,list);`
    

    Make your own xml layout file like this-

    `<TextView xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@android:id/text1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAppearance="@style/YourStyle"
            android:gravity="center_vertical"
            android:paddingStart="?android:attr/listPreferredItemPaddingStart"
            android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
            android:minHeight="?android:attr/listPreferredItemHeightSmall" />`
    

    and use that in the adapter.

    Sample Image:

    Formatted List Item

    0 讨论(0)
提交回复
热议问题