내 응용 프로그램에서 listview를 사용하고 있고 배열 어댑터를 표준으로 확장하여 관련 배열 어댑터를 사용자 정의했습니다. 그러나 확장 어댑터에서 뷰 소유자를 a로 선언 할 수 없습니다. static inner class. Eclipse는 "정적 유형은 정적 또는 최상위 레벨 유형에서만 선언 할 수 있습니다"라는 오류를 계속 제공합니다. 코드는 다음과 같습니다.ViewHolder를 정적 내부 클래스로 선언 할 수 없습니다.
public class IconicAdapter extends ArrayAdapter<String>
{
public static class ViewHolder
{
public TextView text;
public ImageView image;
}
public IconicAdapter() {
super(MainActivity.this,R.layout.row,values);
// TODO Auto-generated constructor stub
}
public View getView(int position,View convertView, ViewGroup parent)
{
View row = convertView;
if(row == null)
{
LayoutInflater inflater = getLayoutInflater();
row = inflater.inflate(R.layout.row, parent,false);
}
TextView label =(TextView)row.findViewById(R.id.label);
label.setText(values[position]);
ImageView icon = (ImageView)row.findViewById(R.id.icon);
icon.setImageResource(R.drawable.ok);
return (row);
}
}
의견이 있으십니까? IconicAdapter
이 내부 클래스 인 경우 IconicAdapter
는 정적 클래스로 선언하지 않는 한
'IconicAdapter.java'에'IconicAdapter'가 있습니까? 아니면 다른 것의 내부 클래스 인'IconicAdapter'입니까? – CommonsWare
IconicAdapter는리스트 액티비티가 포함 된 액티비티 클래스의 내부 클래스입니다. – user1107888