0

カスタム フォントを設定する ListActivity に拡張されたクラスがあります。誰でもこれを説明できますか?TextView の書体を使用する方法は知っていますが、ListActivity には使用できません。

public static class PunjabiBooks extends ListActivity{

    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        String[] mathList = new String[] {"Gurmukh Soch", "Books (Punjabi)", "Books (Hindi)", "Books (English)",
        "Annual Report"};
        setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mathList));

    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        // TODO Auto-generated method stub
        super.onListItemClick(l, v, position, id);
        Object o = this.getListAdapter().getItem(position);
        String keyword = o.toString();
        if (keyword.equals("Gurmukh Soch")){
            x = 0;
            try{
                Class ourClass = Class.forName("sukrit.trust.PublicationsTab$WebActivity");
                Intent ourIntent = new Intent(PunjabiBooks.this, ourClass);
                startActivity(ourIntent);
            }catch(ClassNotFoundException e){
                e.printStackTrace();
            }
        }else if(keyword.equals("Books (Punjabi)")){
            try{
                Class ourClass = Class.forName("sukrit.trust.Publications$PunjabiBooks");
                //  Intent ourIntent = new Intent(Publications.this, ourClass);
                //startActivity(ourIntent);
            }catch(ClassNotFoundException e){
                e.printStackTrace();
            }
        }else if(keyword.equals("Books (Hindi)")){
            try{
                Class ourClass = Class.forName("sukrit.trust.PublicationsTab$HindiBooks");
                //                  Intent ourIntent = new Intent(Publications.this, ourClass);
                //                  startActivity(ourIntent);
            }catch(ClassNotFoundException e){
                e.printStackTrace();
            }
        }else if(keyword.equals("Books (English)")){
            try{
                Class ourClass = Class.forName("sukrit.trust.PublicationsTab$EnglishBooks");
                //                  Intent ourIntent = new Intent(Publications.this, ourClass);
                //                  startActivity(ourIntent);
            }catch(ClassNotFoundException e){
                e.printStackTrace();
            }
        }else if(keyword.equals("Annual Report")){
            try{
                Class ourClass = Class.forName("sukrit.trust.PublicationsTab$AnnualReport");
                //                  Intent ourIntent = new Intent(Publications.this, ourClass);
                //                  startActivity(ourIntent);
            }catch(ClassNotFoundException e){
                e.printStackTrace();
            }
        }
    }
4

1 に答える 1

2

AListViewには、カスタム フォントを持つテキストが本質的にありません。このテキストを提供するクラスを処理する必要があります: Adapter. アダプターは、問題ListViewの (この場合) を含むビューを作成する責任がありますTextViewArrayAdapter<String>メソッドをオーバーライドするカスタム アダプター (おそらく から派生) を作成する必要がありますgetView。最も簡単な解決策は、おそらく単に親実装を呼び出してから、レイアウトからgetView関連するものを見つけて (調べることはできますが、関連する id は.する。これはおそらく次のようになります。TextViewandroid.R.layout.simple_list_item_1View.findViewByIdtext1

public class CustomAdapter extends ArrayAdapter<String> {
    // Appropriate Constructor here
    // ...

    public View getView (int position, View convertView, ViewGroup parent) {
        View view = super.getView(position, convertView, parent);
        TextView textView = (TextView) view.findViewById(android.R.id.text1);
        // Do your textView.setTypeface( ... ) stuff here
    }
}
于 2013-08-05T23:52:42.310 に答える