마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

리스트뷰 어댑터 에러가 납니다 ㅠㅠ

0 추천
public class test extends LinearLayout{
	
	private ArrayList<String> arrlist = null; 
	private ArrayAdapter<String> adapter = null ; //어댑터
	ListView listView;
	 
	 public asPower(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
		onFinishInflate();
	}
	
	 @Override
	protected void onFinishInflate() {
		// TODO Auto-generated method stub
		super.onFinishInflate();
		((Activity) getContext()).getLayoutInflater().inflate(R.layout.aspower, this);
		listView = (ListView)findViewById(R.id.listView);
		arrlist = new ArrayList<String>();
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.list_item, arrlist);
		arrlist.add("월요일");

안녕하세요. 리스트뷰를 만들고 있는데 맨 마지막의  어레이어댑터에서 에러가 납니다.

new ArrayAdapter<String>(this,R.layout.list_item,arrlist); 이 부분에 에러가 납니다.

에러 내용은 

the constructor arrayadapter string is undefined 인데요...리스트뷰랑 어레이 리스트도 다 선언했는데 무엇이 문제인지 모르겠습니다 ㅠ

 

anci (19,950 포인트) 님이 2014년 3월 21일 질문

2개의 답변

+2 추천
 
채택된 답변

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.list_item, arrlist);

모진 말좀 하겠습니다....

그냥 단순히 예제만 따라하고 실행이 된다고 넘어가시면 이런문제에 닥치게 되죠~~!

문제 또한 못찾게 되구요~~!

최소한 어뎁터를 초기화함에 있어 인자가 무엇이 필요한지는 아셔야 하는데.....

겉핥기식으로 하심 안되요~~!

그럼 문제는 일단 위 구문에서 this가 무엇인가요???

아마 님이 던지고 싶은 인자는 context일 겁니다.

하지만 위에 선언된 this는 context가 아니죠~~!

context를 넘겨주셔야겠죠??

 

ThisPlus (46,920 포인트) 님이 2014년 3월 21일 답변
anci님이 2014년 3월 21일 채택됨
감사합니다. getContext로 변경하니 해결되었습니다.ㅠㅠ
선언하는 방법만 알았을 뿐, 안에 의미를 파악하는데 미숙했습니다. 조언 감사합니다.
+1 추천

음.. 주먹밥님 또 위에 전역 선언하시고 새로 선언을..

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.list_item, arrlist);

삭제해주세요~

 

그리고 arrList 에 값을 할당한 후에 어댑터에 붙여야해요~

  arrlist = new ArrayList<String>(); // 객체만 생성 , 값 없음

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.list_item, arrlist); // 없는 문자 배열을 붙이려고 함..
        arrlist.add("월요일"); // 요놈을 위로 올려주세요 ㅎㅎ
초보개발자ㅠ (33,870 포인트) 님이 2014년 3월 21일 답변
안녕하세요; 사실 새 선언하기 이전에 또 오류가 나서..^^;; 이렇게 되버렸네요...
arrlist = new ArrayList<String>();
arrlist.add("월요일");
adapter = new ArrayAdapter<String>(this,R.layout.list_item, arrlist);
이런식으로 했는데도, 동일한 오류가 계속 나옵니다 ㅠㅠ
adapter = new ArrayAdapter<String>(this,R.layout.list_item, arrlist);

this 대신 아래와 같이 getContext() 로 변경해보세요.
adapter = new ArrayAdapter<String>(getContext(),R.layout.list_item, arrlist);
감사합니다. (__)
정신똑바루 차리고 공부해야겟네요..ㅠ
...