2014-06-17 1 views
1

I가 다음 코드, 스피너에 글꼴 유형을 설정하는설정 텍스트 글꼴

private class MySpinnerAdapter extends ArrayAdapter<CharSequence> { 
    private Context context; 

    public MySpinnerAdapter(Context context, int textViewResourceId, 
      List<CharSequence> objects) { 
     super(context, textViewResourceId, objects); 
     this.context = context; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     super.getView(position, convertView, parent); 
     TextView item = (TextView) convertView.findViewById(R.id.item); 
     FontUtils.setRobotoFont(context, item); 
     return convertView; 
    } 

} 

에서 onCreate

MySpinnerAdapter packageAdapter = (MySpinnerAdapter) ArrayAdapter 
      .createFromResource(this, R.array.packageList, 
        R.layout.packageitem); 

R.layout.packageItem

<?xml version="1.0" encoding="UTF-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/item" 
    style="@style/completedProminent" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="@color/tabSelected" 
    android:gravity="center" 
    android:layout_gravity="center" /> 

현재로는 ge ClassCastException @onCreate (소스 라인 위). 여기서 내가 뭘 잘못하고 있니?

+0

했다이'MySpinnerAdapter packageAdapter = (MySpinnerAdapter) ArrayAdapter.createFromResource (이, R.layout.packageitem, R.array.packageList 시도);'. 생성자가'context, int, list'를 매개 변수로 취하고 있으며'context, list, int'를 전달하고 있습니다. – Aniruddha

+0

문제가 해결 되었습니까? – Aniruddha

+0

은 지금은에 의한'점점 오전 : java.lang.NullPointerException이 E/AndroidRuntime (21344) : android.content.res.AssetManager.getResourceTextArray (AssetManager.java:214) E/AndroidRuntime (21344)에서 \t : \t에서 android.content.res.Resources.getTextArray (Resources.java:361) E/AndroidRuntime (21344) : \t android.widget.ArrayAdapter.createFromResource (ArrayAdapter.java:391)' – Siddharth

답변

1

private class MySpinnerAdapter extends ArrayAdapter<CharSequence> { 
    private Context context; 

    public MySpinnerAdapter(Context context, String[] objects, int textViewResourceId) {    
     super(context, textViewResourceId, objects); 
     this.context = context; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View returnObject = super.getView(position, convertView, parent); 
     TextView item = (TextView) findViewById(R.id.item); 
     FontUtils.setRobotoFont(context, item); 
     return returnObject; 
    } 
} 

에서 onCreate

MySpinnerAdapter packageAdapter = new MySpinnerAdapter(this, 
      getResources().getStringArray(R.array.packageList), 
      R.layout.packageitem); 
+0

당신이 알아 낸 것을 잘 알고 있습니다. :) – Aniruddha

1

이 시도 ..

MySpinnerAdapter packageAdapter = (MySpinnerAdapter)ArrayAdapter.createFromResource (this,R.layout.packageitem,R.array.packageList);‌​. 

생성자 매개 변수로 context, int, list을 복용하고 당신은 당신이 ClassCastException이 얻고있는 이유는 그 context, list, int.을 전달하고 있습니다. 마지막으로 일을 무엇

+0

고마워, +1. – Siddharth