제가 구현 할려고 하는 트리 모양은

 

 

 처음 출력 데이터

 

 

원 하는 결과(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;
    }
}