精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-11-22
这几天在搞带有icon的list item,但实现方法貌似很复杂,照着国外达人的一些code snippet也搞不定,他们也没把全部的code发出了,NND。。。怒!今天终于集众家之大成。。。搞定一个了。。。想想还是GWT好,一个composite widget就很轻松搞定了。。。Android目前还算是垃圾滴。。。 java 代码
java 代码
java 代码
java 代码
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-11-22
android不是号称采取gwt前端开发模式吗?
|
|
返回顶楼 | |
发表时间:2007-11-22
这样实现ListVie的Row有点太麻烦了,我想可以用xml composite layout以及google提供的一些内建Class来做,做了一个小实验:
定义layout, row.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView id="@+id/text1" android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1"/> <TextView id="@+id/text2" android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="2"/> </LinearLayout> 这里是用2个TextView来做横向排列的组合 在Activity里面就可以这样写了: public void onCreate(Bundle icicle) { super.onCreate(icicle); List items = new ArrayList(); Map i1 = new HashMap(); i1.put("text", "text1"); i1.put("icon", "icon1"); items.add(i1); Map i2 = new HashMap(); i2.put("text", "text2"); i2.put("icon", "icon2"); items.add(i2); ListAdapter adapter = new SimpleAdapter(this, items, R.layout.row, new String[] { "icon", "text" }, new int[] { R.id.text1, R.id.text2 }); setListAdapter(adapter); } 这里用了SDK提供的SimpleAdapter,来把一个Map通过key值绑定到了layout id上,这样出来了附件的显示效果,距离我们想要的最终效果就是文字和图标的区别。 下一步就是把row.xml中的其中一个TextView替换成ImageView: <ImageView id="@+id/icon1" android:layout_width="0dip" android:layout_height="fill_parent" android:layout_weight="1"/> 由于SimpleAdapter只能绑定到TextView,我们还需要自己写一个IconTextAdapter extends SimpleAdapter,重写里面的绑定数据到ImageView的方法,就能够实现想要的效果了。 可惜SDK里面的android.jar还没有放出源代码来,也没有相关的例子,光看api文档摸索需要一些时间,我就偷懒了, 这个实验就做到此, |
|
返回顶楼 | |
发表时间:2007-11-22
大哥,你强大啊!如果能把MapView搞进compsite view里面就NB了!
快点啊,拉票人一起参赛啊! |
|
返回顶楼 | |
发表时间:2007-11-30
根据Quake Wang的提示,实现如下,相当简单
public class IconTextAdapter extends SimpleAdapter { private int[] mIcons; private int mIconId; /** * @param icons 要显示的Icon资源id * @param iconId icon在layout中的id */ public IconTextAdapter(Context context, List data, int resource, String[] from, int[] to, int[] icons, int iconId) { super(context, data, resource, from, to); mIcons = icons; mIconId = iconId; } public View getView(int position, View convertView, ViewGroup parent) { View v = super.getView(position, convertView, parent); ImageView img = (ImageView) v.findViewById(mIconId); img.setImageResource(mIcons[position]); return v; } } |
|
返回顶楼 | |
发表时间:2007-12-08
j2mepolish 里边定义着一个IconItem(extends Item), 很容易实现楼主要噶效果...
|
|
返回顶楼 | |
发表时间:2007-12-09
珍爱生命,远离J2ME。。。
|
|
返回顶楼 | |
发表时间:2007-12-19
lz,xm初学andoid,用您提供的代码自己建了个工程运行了一把,没有出结果,本人对您的方法非常感兴趣,能否把源代码提供一下,不胜感激!
|
|
返回顶楼 | |
发表时间:2008-01-02
楼上MM站内短信已经回复。
|
|
返回顶楼 | |
发表时间:2008-01-17
本人对您的方法非常感兴趣,能否把源代码提供一下,不胜感激
|
|
返回顶楼 | |