先
這是項目的源碼
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 stubSystem.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)
大家看了之後,有什麼方法可以實現告訴我,或者回複,大家共同交流,謝謝。