$searchKeys = array("言情","玄幻","都市","全本","校园","耽美","武侠","斗破苍穹"); $searchKeyLength = count($searchKeys);
$keyIndex = rand(0,$searchKeyLength-1); <input emptyok="true" name="qs" value="<?php echo $searchKeys[$keyIndex];?>" size="10" />
结果文件框里面怎么也不显示动态取的值;
解决的办法:
$tmp = rand(); <input emptyok="true"
name="qs<?php echo $tmp;?>" value="<?php echo $searchKeys[$keyIndex];?>" size="10" />
postfield的值设定的时候:<postfield name="key" value="$(qs<?php echo $tmp;?>)" />
同是有一个布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content"> <LinearLayout android:id="@+id/backgroud" android:layout_width="wrap_content" android:layout_height="200dip" android:orientation="horizontal" android:background="@drawable/background0"> <ListView android:background="@color/beijingwhite" android:layout_width="wrap_content" android:layout_height="180dip" android:layout_weight="1" android:id="@+id/list_1" android:layout_marginTop="10dip" android:layout_marginBottom="10dip" android:layout_marginLeft="20dip" android:divider="@color/black" android:dividerHeight="1dip" android:scrollbars="none" /> <ListView android:background="@color/beijingwhite" android:id="@+id/list_2" android:scrollbars="none" android:layout_width="wrap_content" android:layout_height="180dip" android:layout_weight="1" android:layout_marginTop="10dip" android:layout_marginBottom="10dip" android:layout_marginLeft="5dip" android:layout_marginRight="20dip" android:divider="@color/black" android:dividerHeight="1dip" /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_marginTop="5dip" android:layout_width="fill_parent" android:layout_height="wrap_content"> <Button android:id="@+id/btn_quxiao" android:background="@drawable/selector_titlebar" android:text="@string/btn_quxiao" android:layout_width="wrap_content" android:layout_gravity="left" android:textSize="30dip" android:textColor="@color/beijingwhite" android:layout_margin="10dip" android:layout_height="wrap_content" android:layout_weight="1" /> <Button android:id="@+id/btn_wancheng" android:background="@drawable/selector_titlebar" android:text="@string/btn_wancheng" android:layout_width="wrap_content" android:textSize="30dip" android:layout_margin="10dip" android:layout_gravity="right" android:textColor="@color/beijingwhite" android:layout_height="wrap_content" android:layout_weight="1" /> </LinearLayout> </LinearLayout>
只要滚动这两个listview中的任何一个都将报错stackoverflow。报错日志在附件中。
我开始以为是布局层次过多,因为这个布局是在tab中!然后我修改如下,程序运行正常
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/background0"> <!-- <LinearLayout android:layout_width="wrap_content"--> <!-- android:layout_height="200dip" android:orientation="horizontal"--> <!-- android:background="@drawable/background0">--> <ListView android:background="@color/beijingwhite" android:layout_alignParentLeft="true" android:layout_width="100dip" android:layout_height="180dip" android:id="@+id/list_1" android:layout_marginTop="10dip" android:layout_marginBottom="10dip" android:layout_marginLeft="20dip" android:divider="@color/black" android:dividerHeight="1dip" android:scrollbars="none" /> <ListView android:background="@color/beijingwhite" android:id="@+id/list_2" android:layout_alignParentRight="true" android:scrollbars="none" android:layout_width="100dip" android:layout_height="180dip" android:layout_marginTop="10dip" android:layout_marginBottom="10dip" android:layout_marginLeft="5dip" android:layout_marginRight="20dip" android:divider="@color/black" android:dividerHeight="1dip" /> <!-- </LinearLayout>--> <!-- <LinearLayout android:orientation="horizontal"--> <!-- android:layout_marginTop="5dip" android:layout_width="fill_parent"--> <!-- android:layout_height="wrap_content">--> <Button android:id="@+id/btn_quxiao" android:layout_below="@id/list_1" android:layout_alignParentLeft="true" android:background="@drawable/selector_titlebar" android:text="@string/btn_quxiao" android:layout_width="wrap_content" android:layout_gravity="left" android:textSize="30dip" android:textColor="@color/beijingwhite" android:layout_margin="10dip" android:layout_height="wrap_content" android:layout_weight="1" /> <Button android:id="@+id/btn_wancheng" android:layout_below="@id/list_1" android:layout_alignParentRight="true" android:background="@drawable/selector_titlebar" android:text="@string/btn_wancheng" android:layout_width="wrap_content" android:textSize="30dip" android:layout_margin="10dip" android:layout_gravity="right" android:textColor="@color/beijingwhite" android:layout_height="wrap_content" android:layout_weight="1" /> <!-- </LinearLayout>--> </RelativeLayout>
程序运行正常。但是我还是想不通,因为我认为层次不应该太多。猜测是否不是listview本省的问题。我又在网上搜索如下关键字: android listview stackoverflow。结果找到这篇文章:
http://serryzhao.iteye.com/blog/787202
按照其中指出的方式修改。程序也正常运行了。。。。。
所以很奇怪。。。我现在也没想通是什么问题造成。
背景图还是布局层次?
Adroid 界面绘制实现
用户接口方面,主要表现任务由View的各种继承类来实现。View类的继承关系如图所示。
当用户请求绘制调用invalidate(),此函数会找到当前View或Viewgroup的ParentView,并调用父视图的invalidateChild(this, r)。invalidateChild会循环调用父视图的invalidateChildInParent()因此层层向上层视图调用,直到调用到根视图ViewRoot。ViewRoot的invalidateChildInParent调用invalidateChild,然后发送消息让ViewRoot进行绘制。绘制代码在handleMessage()中的case DO_TRAVERSAL中调用了performTraversals()。
background.draw(canvas)
dispatchDraw(canvas)
在ViewGroup的dispatchDraw中会调用drawChild函数。drawChild根据子View的私有标志位mPrivateFlags来调用子类的draw()或者dispatchDraw(canvas)。由此实现了层层向下绘制,直到最基本的View。View的dispatchDraw是一个抽象函数,绘制过程到此结束。最后ViewRoot会调用nativeShowFPS(canvas, now - sDrawTime)函数将绘制结果canvas传递给本地层进行显示。
参考别人的分析,自己大概的看了一遍。框架层看得差不多了,本地层还没有看。等有时间看了再更新吧。
参考资料:http://blog.sina.com.cn/s/blog_5e71b14f0100c75g.html
联系方式:zhangyangjing#gmail.com
如要转载请注明版权到此位置。