제가 구현 할려고 하는 트리 모양은
처음 출력 데이터
|
원 하는 결과(TreeItem02 클릭시)
|
출력되는 결과(TreeItem02 클릭시)
|
---------- TreeItem01 TreeItem02 TreeItem03 -----------
|
---------- TreeItem01 TreeItem03 -----------
|
---------- TreeItem01 (빈 공간) TreeItem03 -----------
|
위와 같은 결과를 얻고 싶은데,
어제 하루종일 고민이하다 결국 이렇게 올리네요.ㅠㅠ
소스는 아래와 같습니다.
조언, 충고, 정보 모든지 환영입니다..ㅠㅠ 도와주십쇼ㅠㅠ
public class C09_ListIconText extends Activity {
ArrayList<MyItem> arItem;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.c09_listview);
arItem = new ArrayList<MyItem>();
MyItem mi;
mi = new MyItem(R.drawable.icon, "삼성 노트북"); arItem.add(mi);
mi = new MyItem(R.drawable.icon, "LG 세탁기"); arItem.add(mi);
mi = new MyItem(R.drawable.icon, "대우 마티즈"); arItem.add(mi);
MyListAdapter MyAdapter = new MyListAdapter(this, R.layout.c09_icontext, arItem);
ListView MyList;
MyList=(ListView)findViewById(R.id.list);
MyList.setAdapter(MyAdapter);
MyList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String mes;
mes = "Select Item = " + arItem.get(position).Name;
Toast.makeText(C09_ListIconText.this, mes,Toast.LENGTH_SHORT).show();
parent.getChildAt(position).setVisibility(View.GONE);
}
});
}
}
//리스트 뷰에 출력할 항목
class MyItem {
MyItem(int aIcon, String aName) {
Icon = aIcon;
Name = aName;
}
int Icon;
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.getSystemServic(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;
}
// 각 항목의 뷰 생성
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = Inflater.inflate(layout, parent, false);
}
ImageView img = (ImageView)convertView.findViewById(R.id.img);
img.setImageResource(arSrc.get(position).Icon);
TextView txt = (TextView)convertView.findViewById(R.id.text);
txt.setText(arSrc.get(position).Name);
return convertView;
}
}