본문 바로가기

컴퓨터/android

Custom ListView

public class SetMain extends Activity implements OnItemClickListener{

Intent intent;

MyListAdapter MyAdapter;

ArrayList<MyItem> arItem;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.setmain);

        arItem = new ArrayList<MyItem>();

MyItem mi;

mi = new MyItem("도움말");arItem.add(mi);    //list에 내의 클래스 

mi = new MyItem("사이트 설정");arItem.add(mi);

mi = new MyItem("담당자 이메일");arItem.add(mi);

mi = new MyItem("버전 정보");arItem.add(mi);

MyAdapter = new MyListAdapter(this, R.layout.set_list, arItem);

ListView MyList;

MyList=(ListView)findViewById(R.id.set_list);

MyList.setAdapter(MyAdapter);

MyList.setOnItemClickListener(this);

    }

class MyItem{

MyItem(String aName){

Name = aName;

}

String Name;

}

class MyListAdapter extends BaseAdapter{

Context maincon;

LayoutInflater Inflater;

ArrayList<MyItem> arSrc;

int layout;

public MyListAdapter(Context context, int alayout, ArrayList<MyItem> aarSrc){

maincon = context;

Inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

arSrc = aarSrc;

layout = alayout;

}

public int getCount(){

return arSrc.size();

}

public String getItem(int position){

return arSrc.get(position).Name;

}

public long getItemId(int position){

return position;

}

//getView에서 커스터 리스트를 세팅 position으로 위치를 알아냄

//convertView는 이전, parent 부모 리스트뷰

public View getView(int position, View convertView, ViewGroup parent){

final int pos = position;

if(convertView == null){

convertView = Inflater.inflate(layout, parent, false);

}

TextView txt = (TextView)convertView.findViewById(R.id.set_text);

txt.setText(arSrc.get(position).Name);

return convertView;

}

}

//onItemClick으로 각각의 리스트뷰에 대한 클릭 이벤트 처리

//position으로 위치를 알 수 있음

//어댑터 값이 변경되는 경우 MyAdapter.notifyDataSetChanged(); 사용

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {


if(arItem.get(position).Name.equals("도움말")){

}

else if(arItem.get(position).Name.equals("사이트 설정")){

}

else if(arItem.get(position).Name.equals("담당자 메일")){

}

else if(arItem.get(position).Name.equals("버전 정보")){

}

}

}

'컴퓨터 > android' 카테고리의 다른 글

네트워크 연결 상태 확인  (0) 2013.07.11
이메일 보내기  (0) 2013.07.11
슬라이드 화면 전환  (0) 2013.07.05
ArrayList, ArrayAdapter, ListView  (0) 2013.07.05
체크박스  (0) 2013.07.01