如何将自定义字体分配给列表视图中的分析数据



我只是用jsoup解析了一些数据并在listview中显示它们但是我想更改解析数据的字体?我应该创建自定义 LV 吗?如何?

public class MainActivity extends Activity {
    adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.product_name, titleList);
}
public class NewThread extends AsyncTask<String, Void, String> {
    @Override
    protected String doInBackground(String... arg) {
        Document doc;
        try {
            doc = Jsoup.connect("http://tinyez.net//").get();
            title = doc.select("div.post.lit");
            title1 = title.select("h2");
            for (Element titles : title1) {
                titleList.add(titles.text());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
    @Override
    protected void onPostExecute(String result) {
        lv.setAdapter(adapter);
    }
}
}

步骤1:在"资产"文件夹中创建一个名为"文件夹"的文件夹。

第2步:下载要应用于文本的字体(文件应为.ttf格式)。

步骤3:从主活动将字符串添加到列表并将其传递给自定义适配器,并将适配器添加到列表视图。

public class MainActivity extends Activity {
List<String> listString ;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    String[] stringArray = new String[]{"Android", "iPhone", "WindowsMobile",
            "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X",
            "Linux", "OS/2", "Ubuntu", "Windows7", "Max OS X", "Linux",
            "OS/2", "Ubuntu", "Windows7", "Max OS X", "Linux", "OS/2"};
    listString = new ArrayList<String>();
    for(int i=0; i<stringArray.length;i++){
        listString.add(stringArray[i]);
    }
    ListView listView = (ListView) findViewById(R.id.listView);
    CustomAdapter customAdapter = new CustomAdapter(this,listString);
    listView.setAdapter(customAdapter);
}

}

第 4 步:创建类 CustomAdapter 并使用 ArrayAdapter 对其进行扩展,并执行下面的提及代码。

public class CustomAdapter extends ArrayAdapter<String>{
List<String> listString;
Activity context;
Typeface typeFace ;
public CustomAdapter(MainActivity mainActivity, List<String> listString) {
    super(mainActivity,R.layout.list_row,listString);
    this.context=mainActivity;
    this.listString=listString;
}
static class ViewHolder{
    public TextView textView;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View vi = convertView;
    if(vi==null)
    {
        LayoutInflater inflater = context.getLayoutInflater();
        vi = inflater.inflate(R.layout.list_row, null);
        ViewHolder viewHolder = new ViewHolder();
        viewHolder.textView = (TextView) vi.findViewById(R.id.textView);
        vi.setTag(viewHolder);
    }
    ViewHolder holder = (ViewHolder) vi.getTag();
    typeFace = Typeface.createFromAsset(context.getAssets(), "fonts/verdana.ttf");
    holder.textView.setTypeface(typeFace);
    holder.textView.setText(listString.get(position));
    return vi;
}

}

您必须

创建自定义ListView适配器。在getView()中,您将能够设置TextView的文字。

请参阅有关如何编写自定义适配器的信息:http://www.vogella.com/tutorials/AndroidListView/article.html

最新更新