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


    先上图

     这是项目的源码

    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)

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

  • 相关阅读:
    lambda表达式
    解读Raft(一 算法基础)
    译《Time, Clocks, and the Ordering of Events in a Distributed System》
    如何在MQ中实现支持任意延迟的消息?
    读Kafka Consumer源码
    2017上海QCon之旅总结(下)
    2017上海QCon之旅总结(中)
    2017上海QCon之旅总结(上)
    什么是WAL?
    Push or Pull?
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3049997.html
Copyright © 2020-2023  润新知