先上图
这是项目的源码
http://download.csdn.net/detail/xu_song/5312262
有兴趣的话,可以尝试着去解决
我想实现的功能就是在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)
大家看了之后,有什么方法可以实现告诉我,或者回复,大家共同交流,谢谢。