先上图
这是项目的源码
http://download.youkuaiyun.com/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)
大家看了之后,有什么方法可以实现告诉我,或者回复,大家共同交流,谢谢。