android ListView item里动态增加多个LinearLayout的问题

先上图

 这是项目的源码

http://download.csdn.net/detail/xu_song/5312262

有兴趣的话,可以尝试着去解决

 

android ListView item里动态增加多个LinearLayout的问题_第1张图片

我想实现的功能就是在listView 的item加入多个LinearLayout,但是也不知道多少个,这个值是根据setAdapter的一个ArrayList对象取出来的。

(比如列表第一个item加入一个,第二个item加入二个,第三item加入三个)

这个是ListView item的布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="#ffffff"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/nameTV"
                android:layout_width="fill_parent"
                android:layout_height="50dip"
                android:layout_weight="1"
                android:gravity="center"
                android:text="111"
                android:textColor="#000000"
                android:textSize="18sp" />

            <TextView
                android:id="@+id/image"
                android:layout_width="30dip"
                android:layout_height="30dip"
                android:layout_marginLeft="15dip"
                android:layout_marginRight="15dip"
                android:background="@drawable/soucang" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/layout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" 
            android:orientation="vertical">
        </LinearLayout>
    </LinearLayout>

</LinearLayout>


大家可能看到了 有一个最后一个id 为了layout    linearLayout是空的,对这就等下要动态加入的view,放在这个LinearLayout里面。

 

然后分别要对每个item的每个 加入的layout进行监听,分别做一些处理。

现在我在listView adapter里面的getView来动态添加 view ,layout.add(view[i]);

 

public View getView(final int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub\
		
		
		ListDTO dto = list.get(position);
		System.out.println("item position-----------"+position);
		//if(convertView == null) {
			convertView = (View)inflater.inflate(R.layout.list, null);
		//}
		TextView nameTV = (TextView) convertView.findViewById(R.id.nameTV);
		TextView image = (TextView) convertView.findViewById(R.id.image);
		LinearLayout layout = (LinearLayout) convertView.findViewById(R.id.layout);
		/*System.out.println("hash---"+AndroidTestActivity.hs);
		System.out.println("id---"+dto.getId());*/
		if(AndroidTestActivity.hs.contains(dto.getId())) {
			System.out.println("position------"+position);
			image.setBackgroundResource(R.drawable.soucang_2);
		}else {
			image.setBackgroundResource(R.drawable.soucang);
		}
		nameTV.setText(dto.getContent());
		
		if(dto.getLists() != null) {
			System.out.println("getLists().size()---"+dto.getLists().size());
			for(int i=0; i<dto.getLists().size(); i++) {
				view = new View[dto.getLists().size()];
				view[i] = (View)inflater.inflate(R.layout.layout_inflate, null);
				
				TextView tv = (TextView) view[i].findViewById(R.id.tv);
				tv.setText(dto.getLists().get(i));
				index  = i;
				view[i].setId(index);
				System.out.println("i------");
				view[i].setOnClickListener(new OnClickListener() {
					
					public void onClick(View v) {
						// TODO Auto-generated method stub
						
						System.out.println(view[index].getId());
						Toast.makeText(mContext, "第"+position+"组 第"+index+"行", Toast.LENGTH_SHORT).show();
					}
				});
				System.out.println("--=====---java");
				layout.addView(view[i]);	
			}
		}
		
		
		return convertView;
	}

 

不知道怎么取到动态加入的view在每个item的位置。(就拿列表的第二项来说,动态的加入了二项,一个是thinking in java ,一个是java design parttner,

我分别要对这两项的点击事件做处理,可是不知道怎么得到点击到底是第列表第二项 thinking in java ,还是java design parttner)

大家看了之后,有什么方法可以实现告诉我,或者回复,大家共同交流,谢谢。

 

你可能感兴趣的:(android,ListView)