2013-08-13 2 views
0

Listview 어댑터를 만드는 데 문제가 있습니다. 여기에 코드가 있습니다.Android ArrayAdapter가 정의되지 않았습니다.

import com.actionbarsherlock.app.SherlockFragment; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class Recipes extends SherlockFragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     ListView recipelist = (ListView) getView().findViewById(R.id.recipe_drawer); 

     String[] items ={ getResources().getString(R.string.block), 
     getResources().getString(R.string.tool), 
     getResources().getString(R.string.support), 
     getResources().getString(R.string.veggie) 
     }; 

     ArrayAdapter<String> adapt = new ArrayAdapter<String>(Recipes.this, R.layout.recipes_list_item, items); 
     recipelist.setAdapter(adapt); 

     View rootView = inflater.inflate(R.layout.recipes, container, false); 
     return rootView; 


    } 

} 

내가 오류가 ArrayAdapter<String> adapt = new ArrayAdapter<String>(Recipes.this, R.layout.recipes_list_item, items);에 그것은

생성자 ArrayAdapter와 (조리법, INT, 문자열 []) 말한다; 정의되지 않았습니다.

나는 이것을 바꾸기 위해 노력했다. 이것은 단지 같은 오류를 낸다. 어떤 도움을 주시면 감사하겠습니다!

답변

2

Recipes.this에서 getActivity()으로 변경하십시오. Fragment에있는 Context이 아니며 ArrayAdapter 생성자 패밀리의 첫 번째 매개 변수입니다.

+0

을 시도하고 일 , 나는 반응 속도에 깊은 인상을 받았습니다. 질문을 한 후 잠깐! 고맙습니다! – Jimlarck

2

ArrayAdapter<String> adapt = new ArrayAdapter<String>(Recipes.this, R.layout.recipes_list_item, items); 

ArrayAdapter<String> adapt = new ArrayAdapter<String>(getActivity(), R.layout.recipes_list_item, items); 

사용 getActivity에 의해 호스팅 활동의 활동 상황을 얻기 위해 교체는

public final Activity getActivity()

Added in API level 11 
Return the Activity this fragment is currently associated with. 
관련 문제