2014-02-20 1 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에서 List에 문자열을 추가하고이를 CustomAdapter에 전달하고 Adapter를 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

관련 문제