package com.example.mylauncher; import android.content.Context; import android.graphics.Typeface; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.TextView; import android.widget.Toast; import java.util.List; public class CustomAdapter extends ArrayAdapter { private Typeface customFont; public CustomAdapter(Context context, List items) { super(context, R.layout.menu_item, items); try { customFont = Typeface.createFromAsset(context.getAssets(), "fonts/custom_font.ttf"); } catch (Exception e) { e.printStackTrace(); Toast.makeText(context, "Error loading font", Toast.LENGTH_SHORT).show(); customFont = Typeface.DEFAULT; } } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { LayoutInflater inflater = LayoutInflater.from(getContext()); convertView = inflater.inflate(R.layout.menu_item, parent, false); holder = new ViewHolder(); holder.textView = convertView.findViewById(R.id.text_view); holder.textView.setTypeface(customFont); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } String item = getItem(position); holder.textView.setText(item != null ? item : ""); return convertView; } private static class ViewHolder { TextView textView; } }