2014-02-20 22 views
0

我剛剛用jsoup解析了一些數據,並在列表視圖中顯示它們 但我想更改解析數據的字體? 我應該創建一個自定義的lv嗎? 怎麼樣?如何將自定義字體分配給listView中的分析數據?

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

第1步:在「資產」文件夾名「文件夾」創建一個文件夾。

步驟2:下載要應用於文本的字體(文件應該是.ttf格式)。

第3步:從MainActivity將字符串添加到列表並將其傳遞給CustomAdapter並將適配器添加到ListView。

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

}

+0

,你會給我更多的細節? – Airborne

+0

@Airborne是的,我正在編輯我的答案。 –

+0

非常感謝,我明白了。 – Airborne

相關問題