??xml version="1.0" encoding="utf-8" standalone="yes"?>国产在线电影,色一情一乱一伦一区二区三区丨,亚洲国产网站http://www.aygfsteel.com/crazycoding/category/44428.htmlGod helps those who help themselves. zh-cnWed, 13 Feb 2013 10:08:58 GMTWed, 13 Feb 2013 10:08:58 GMT60android U条选择?/title><link>http://www.aygfsteel.com/crazycoding/archive/2013/01/30/394917.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Wed, 30 Jan 2013 03:27:00 GMT</pubDate><guid>http://www.aygfsteel.com/crazycoding/archive/2013/01/30/394917.html</guid><wfw:comment>http://www.aygfsteel.com/crazycoding/comments/394917.html</wfw:comment><comments>http://www.aygfsteel.com/crazycoding/archive/2013/01/30/394917.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/crazycoding/comments/commentRss/394917.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/crazycoding/services/trackbacks/394917.html</trackback:ping><description><![CDATA[<p>如下图所C,本文介l如何通过修改EditText里的|动态的改变所画Line的宽度(只介l大概思\Q?/p> <p><img src="http://www.aygfsteel.com/images/blogjava_net/crazycoding/QQ截图20130130104853.png" width="387" height="277" alt="" /></p> <p><br /> </p> <p>1.定义一个layoutQ用于放|Line</p> <p> </p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; "><</span><span style="color: #800000; ">LinearLayout </span><span style="color: #FF0000; ">android:id</span><span style="color: #0000FF; ">="@+id/ll_feature_width_legend"</span><span style="color: #FF0000; "><br />             android:layout_width</span><span style="color: #0000FF; ">="58dp"</span><span style="color: #FF0000; "><br />             android:layout_height</span><span style="color: #0000FF; ">="45dp"</span><span style="color: #FF0000; "><br />             android:layout_marginLeft</span><span style="color: #0000FF; ">="15dp"</span><span style="color: #FF0000; "><br />             android:layout_toRightOf</span><span style="color: #0000FF; ">="@id/tv_feature_width_edit"</span><span style="color: #FF0000; "><br />             android:background</span><span style="color: #0000FF; ">="#FFFFFF"</span><span style="color: #0000FF; ">/></span></div> <p> </p> <p><br /> </p> <p>2.在自定义View里画Line</p> <p> </p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">Paint paint </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Paint();<br /> paint.setStrokeWidth(</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.width);<br />                 canvas.drawLine(</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getWidth(), </span><span style="color: #000000; ">10</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getHeight() </span><span style="color: #000000; ">-</span><span style="color: #000000; "> </span><span style="color: #000000; ">10</span><span style="color: #000000; ">,<br />                         paint);</span></div> <p> </p> <p>其中Qwidth是EditText里传q来的宽?/p> <p><br /> </p> <p>3.自定义的View攑ֈ?】的layout?/p> <p> </p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">widthLayout </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (LinearLayout) view<br />                 .findViewById(R.id.ll_feature_width_legend);<br />         widthLegend </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> DBLayerListSymbolView(</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.activity, width);<br />         widthLayout.addView(widthLegend);</span></div> <p> </p> <p>其中Q? <span style="color: #000000; ">DBLayerListSymbolView是自定义的ViewQwidth是EditText传过来的宽度</span> </p> <p><span style="color: #000000; "><br /> </span></p> <p><span style="color: #000000; ">4.在自定义的View里追加如下代码,以动态改变width的|q刷新界?br /> </span></p> <p> </p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #008000; ">/**</span><span style="color: #008000; "><br />      * change symbol draw width<br />      * <br />      * </span><span style="color: #808080; ">@param</span><span style="color: #008000; "> width<br />      </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />     </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> changeWidth(</span><span style="color: #0000FF; ">float</span><span style="color: #000000; "> width) {<br />         </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.width </span><span style="color: #000000; ">=</span><span style="color: #000000; "> width;<br />         invalidate();<br />     }</span></div> <span style="color: #000000; "><br /> </span> <p> </p> <p><span style="color: #000000; ">5.lEditTextq加TextChangedListenerQ实现其中的onTextChangedҎQ?br /> </span></p> <p> </p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">@Override<br />             </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> onTextChanged(CharSequence text, </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> arg1, </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> arg2,<br />                     </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> arg3) {</span><span style="color: #000000; "><br />                 </span><span style="color: #0000FF; ">float</span><span style="color: #000000; "> width </span><span style="color: #000000; ">=</span><span style="color: #000000; "> Float.parseFloat(text.toString());<br />                 </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (width </span><span style="color: #000000; ">>=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; "> </span><span style="color: #000000; ">&&</span><span style="color: #000000; "> width </span><span style="color: #000000; "><=</span><span style="color: #000000; "> </span><span style="color: #000000; ">20</span><span style="color: #000000; ">) {<br />                     mWidth </span><span style="color: #000000; ">=</span><span style="color: #000000; "> width;<br />                     </span><span style="color: #000000; background-color: yellow;">widthLegend.changeWidth(width);</span><span style="color: #000000; "><br />                 } </span><span style="color: #000000; "><br />             }</span></div> <span style="color: #000000; "><br /> </span> <p> </p> <p><span style="color: #000000; ">q样Q随着EditText里值的变化Q旁边白色区域内p够动态的昄对应宽度的线?br /> </span></p> <p><span style="color: #000000; "><br /> </span></p> <p><span style="color: #000000; ">本文受启发于Qhttp://nxsfan.co.uk/blog/2010/06/18/ondraw-drawing-a-simple-line-on-a-background/<br /> </span></p> <p><span style="color: #000000; ">另外Q最q发C个不错的jar包下载网站:http://jarfiles.pandaidea.com/<br /> </span></p> <p><span style="color: #000000; "><br /> </span></p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <img src ="http://www.aygfsteel.com/crazycoding/aggbug/394917.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/crazycoding/" target="_blank">Ying-er</a> 2013-01-30 11:27 <a href="http://www.aygfsteel.com/crazycoding/archive/2013/01/30/394917.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Step by Step——Google Map View2 Qi am hereQ?/title><link>http://www.aygfsteel.com/crazycoding/archive/2011/10/14/361236.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Fri, 14 Oct 2011 02:01:00 GMT</pubDate><guid>http://www.aygfsteel.com/crazycoding/archive/2011/10/14/361236.html</guid><wfw:comment>http://www.aygfsteel.com/crazycoding/comments/361236.html</wfw:comment><comments>http://www.aygfsteel.com/crazycoding/archive/2011/10/14/361236.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/crazycoding/comments/commentRss/361236.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/crazycoding/services/trackbacks/361236.html</trackback:ping><description><![CDATA[     摘要: TODOQ对上一随W:Step by Step——Google Map ViewQHello ViewQ?q行q一步改q,使其能够获取讑֤当前位置Qƈ昄对应地图 step1Q定义LocationManagerQ获取当前locationQƈ装成GeoPoint         loc...  <a href='http://www.aygfsteel.com/crazycoding/archive/2011/10/14/361236.html'>阅读全文</a><img src ="http://www.aygfsteel.com/crazycoding/aggbug/361236.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/crazycoding/" target="_blank">Ying-er</a> 2011-10-14 10:01 <a href="http://www.aygfsteel.com/crazycoding/archive/2011/10/14/361236.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Step by Step——Google Map ViewQHello ViewQ?/title><link>http://www.aygfsteel.com/crazycoding/archive/2011/10/12/361061.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Wed, 12 Oct 2011 07:47:00 GMT</pubDate><guid>http://www.aygfsteel.com/crazycoding/archive/2011/10/12/361061.html</guid><wfw:comment>http://www.aygfsteel.com/crazycoding/comments/361061.html</wfw:comment><comments>http://www.aygfsteel.com/crazycoding/archive/2011/10/12/361061.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/crazycoding/comments/commentRss/361061.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/crazycoding/services/trackbacks/361061.html</trackback:ping><description><![CDATA[     摘要: 今天参照Android Api里的Hello Views来学习GMapQ不惻IApi里好多错误,?soQ我在这里脓出正的代码Q供大家参? TODOQ?Q:昄MapQCreating a Map ActivityQ?step1Q创Z个新的工E?step2Q由于Maps library不是标准库里的东东,SOQ要在AndroidManifest.xml文g中加上一个libraryQ?..  <a href='http://www.aygfsteel.com/crazycoding/archive/2011/10/12/361061.html'>阅读全文</a><img src ="http://www.aygfsteel.com/crazycoding/aggbug/361061.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/crazycoding/" target="_blank">Ying-er</a> 2011-10-12 15:47 <a href="http://www.aygfsteel.com/crazycoding/archive/2011/10/12/361061.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>#Android java.lang.ClassNotFoundException: ...in loader dalvik.system.PathClassLoader@43b7d6d0http://www.aygfsteel.com/crazycoding/archive/2011/10/11/360957.htmlYing-erYing-erTue, 11 Oct 2011 05:32:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2011/10/11/360957.htmlhttp://www.aygfsteel.com/crazycoding/comments/360957.htmlhttp://www.aygfsteel.com/crazycoding/archive/2011/10/11/360957.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/360957.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/360957.html
</activity>
        
<uses-library android:name = "com.google.android.maps"/>
    
</application>






Ying-er 2011-10-11 13:32 发表评论
]]>
#Android com.google.android.maps.MapView in loader dalvik.system.PathClassLoader@43b7d6d0http://www.aygfsteel.com/crazycoding/archive/2011/10/11/360956.htmlYing-erYing-erTue, 11 Oct 2011 05:26:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2011/10/11/360956.htmlhttp://www.aygfsteel.com/crazycoding/comments/360956.htmlhttp://www.aygfsteel.com/crazycoding/archive/2011/10/11/360956.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/360956.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/360956.htmlegQ?br />
public class GMapTest extends Activity {
    
/** Called when the activity is first created. */
    @Override
    
public void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

ҎQ?br />
public class GMapTest extends MapActivity {
    
/** Called when the activity is first created. */
    @Override
    
public void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    @Override
    
protected boolean isRouteDisplayed() {
        
// TODO Auto-generated method stub
        return false;
    }
}










Ying-er 2011-10-11 13:26 发表评论
]]>
#Android 获取(keystore)Maps API Keyhttp://www.aygfsteel.com/crazycoding/archive/2011/10/11/360937.htmlYing-erYing-erTue, 11 Oct 2011 02:36:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2011/10/11/360937.htmlhttp://www.aygfsteel.com/crazycoding/comments/360937.htmlhttp://www.aygfsteel.com/crazycoding/archive/2011/10/11/360937.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/360937.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/360937.html
甌|址Q?a title="http://code.google.com/intl/en/android/add-ons/google-apis/mapkey.html" >http://code.google.com/intl/en/android/add-ons/google-apis/mapkey.html
①打开cmdH口Q到.android目录?br /> ②按照$ keytool -list -alias alias_name -keystore my-release-key.keystore格式敲入命o
③输入密码Qandroid
④获取到指U?br /> 附截图:
⑤到网址Q?a title="http://code.google.com/intl/en/android/add-ons/google-apis/maps-api-signup.html" >http://code.google.com/intl/en/android/add-ons/google-apis/maps-api-signup.html
NI have read and agree with the terms and conditions (printable version)
输入刚刚获取到的指纹
点击Generate API Key
⑥获取到指UҎ对应的密钥,q保存好Q页面上提供了一D|试代码,不妨手试试?/div>
附:Debug Key的相兛_?br /> Keystore nameQdebug.keystore
Keystore password:android
Key alias:androiddebugkey
Key password:android
CN:CN=Android Debug,O=AndroidQC=US


Ying-er 2011-10-11 10:36 发表评论
]]>在Android模拟器里安装apkhttp://www.aygfsteel.com/crazycoding/archive/2011/10/11/360929.htmlYing-erYing-erTue, 11 Oct 2011 01:25:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2011/10/11/360929.htmlhttp://www.aygfsteel.com/crazycoding/comments/360929.htmlhttp://www.aygfsteel.com/crazycoding/archive/2011/10/11/360929.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/360929.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/360929.html egQ?br /> D:\Android\android-sdk_r05-windows\android-sdk-windows\platform-tools

②打开cmdH口Q\径切换到tools?br />
③adb install XXX.apk











Ying-er 2011-10-11 09:25 发表评论
]]>
#Android 获得当前讑֤上可用Location Provider列表http://www.aygfsteel.com/crazycoding/archive/2011/09/28/359698.htmlYing-erYing-erWed, 28 Sep 2011 07:30:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2011/09/28/359698.htmlhttp://www.aygfsteel.com/crazycoding/comments/359698.htmlhttp://www.aygfsteel.com/crazycoding/archive/2011/09/28/359698.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/359698.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/359698.htmlLocationManager locationManager;


locationManager = (LocationManager)UserLocationTest.this.getSystemService(Context.LOCATION_SERVICE);


List<String> providers = locationManager.getAllProviders();
            
for(Iterator iterator = providers.iterator();iterator.hasNext();)
            {
                String provider 
= (String)iterator.next();
                System.out.println(
"====" + provider + "===");
            }










Ying-er 2011-09-28 15:30 发表评论
]]>
#Android 使用User Location获取当前l纬?/title><link>http://www.aygfsteel.com/crazycoding/archive/2011/09/25/359471.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Sun, 25 Sep 2011 13:28:00 GMT</pubDate><guid>http://www.aygfsteel.com/crazycoding/archive/2011/09/25/359471.html</guid><wfw:comment>http://www.aygfsteel.com/crazycoding/comments/359471.html</wfw:comment><comments>http://www.aygfsteel.com/crazycoding/archive/2011/09/25/359471.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/crazycoding/comments/commentRss/359471.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/crazycoding/services/trackbacks/359471.html</trackback:ping><description><![CDATA[<p>step1Q声明权? </p> <p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; "><</span><span style="color: #800000; ">uses-permission </span><span style="color: #FF0000; ">android:name</span><span style="color: #0000FF; ">="android.permission.ACCESS_FINE_LOCATION"</span><span style="color: #0000FF; ">/></span></div> <p> </p> <p><br /> </p> <p>step2Q获取LocationManager对象</p> <p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">LocationManager locationManager </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (LocationManager)LocationTest.</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.getSystemService(Context.LOCATION_SERVICE);</span></div> <p><br /> </p> <p>step3Q选择LocationProviderQ绑定LocationListener对象</p> <p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #000000; ">locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> MyLocationListener());</span></div> <p> </p> <p><br /> </p> <p>附:MyLocationListener</p> <p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000; ">    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> MyLocationListener </span><span style="color: #0000FF; ">implements</span><span style="color: #000000; "> LocationListener{<br /> <br />         @Override<br />         </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> onLocationChanged(Location location) {<br />             </span><span style="color: #008000; ">//</span><span style="color: #008000; "> TODO Auto-generated method stub</span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">            System.out.println(location.getLatitude());<br />             System.out.println(location.getLongitude());<br />         }<br /> <br />         @Override<br />         </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> onProviderDisabled(String provider) {<br />             </span><span style="color: #008000; ">//</span><span style="color: #008000; "> TODO Auto-generated method stub</span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">            <br />         }<br /> <br />         @Override<br />         </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> onProviderEnabled(String provider) {<br />             </span><span style="color: #008000; ">//</span><span style="color: #008000; "> TODO Auto-generated method stub</span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">            <br />         }<br /> <br />         @Override<br />         </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> onStatusChanged(String provider, </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> status, Bundle extras) {<br />             </span><span style="color: #008000; ">//</span><span style="color: #008000; "> TODO Auto-generated method stub</span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">            <br />         }<br />         <br />     }</span></div> <br /> <p> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <img src ="http://www.aygfsteel.com/crazycoding/aggbug/359471.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/crazycoding/" target="_blank">Ying-er</a> 2011-09-25 21:28 <a href="http://www.aygfsteel.com/crazycoding/archive/2011/09/25/359471.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spinner 使用Ҏ结http://www.aygfsteel.com/crazycoding/archive/2011/07/09/353981.htmlYing-erYing-erSat, 09 Jul 2011 08:15:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2011/07/09/353981.htmlhttp://www.aygfsteel.com/crazycoding/comments/353981.htmlhttp://www.aygfsteel.com/crazycoding/archive/2011/07/09/353981.html#Feedback2http://www.aygfsteel.com/crazycoding/comments/commentRss/353981.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/353981.html一。基本用方法:
main.xml 不多解释
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation
="vertical"
    android:layout_width
="fill_parent"
    android:layout_height
="fill_parent"
    
>
<Spinner
     
android:id = "@+id/mySpinner"
     android:layout_width 
= "fill_parent"
     android:layout_height 
="wrap_content"
     
/>
</LinearLayout>

在string.xml中?#8220;string-array”定义数据源?br />
<?xml version="1.0" encoding="utf-8"?>
<resources>
    
<string name="app_name">MySpinnerDemo</string>
    
<string-array name = "phones_array">
        
<item>iPhone</item>
        
<item>Android</item>
        
<item>BlackBerry</item>
    
</string-array>
</resources>

Activityc:
package com.yinger;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.AdapterView.OnItemSelectedListener;

/**
 * Spinner Demo
 * 
@author Yinger
 * @time 2011-7-9 下午01:54:59
 * @mail melody.crazycoding@gmail.com
 
*/
public class SpinnerDemo extends Activity {
    Spinner spinner 
= null;
    String selected 
= "0";
    
    
/** Called when the activity is first created. */
    @Override
    
public void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        spinner 
= (Spinner)findViewById(R.id.mySpinner);
        initMySpinner();
    }

    
private void initMySpinner() {
        ArrayAdapter
<CharSequence> adapter = ArrayAdapter.createFromResource(
                
this, R.array.phones_array,
                android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        spinner.setPrompt(
"test");
        spinner.setOnItemSelectedListener(
new SpinnerOnSelectedListener());
    }
    
    
class SpinnerOnSelectedListener implements OnItemSelectedListener{
        
public void onItemSelected(AdapterView<?> adapterView, View view, int position,
                
long id) {
            
// TODO Auto-generated method stub
            selected = adapterView.getItemAtPosition(position).toString();
            System.out.println(
"selected===========>" + selected);
        }

        
public void onNothingSelected(AdapterView<?> arg0) {
            
// TODO Auto-generated method stub
            System.out.println("selected===========>" + "Nothing");
        }
    }
}

二。debug发现的一个小问题Q?br />Spinner在初始化时会自动调用一ơOnItemSelectedListener事g
原因Q有是BugQ其实这与C#的事件机制类|懒得说了=?
提供的解军_法:
个h是通过在事件注册之前调?br />
spinner.setSelection(0true);
但要注意Q用此ҎQ如果用户选择的也是第一,那么OnItemSelectedListener事g不会被触?#8230;…

三。用技?br />1.动态添加Spinner的数据源
修改initMySpinnerҎQ代码如下:
private void initMySpinner() {
        String[] phones 
= {"iPhone","Android","BlackBerry"};
        ArrayAdapter
<String> adapter = new ArrayAdapter<String>(
                
this,  android.R.layout. simple_spinner_item,
                phones);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        spinner.setPrompt(
"test");
        spinner.setSelection(
0true);
        spinner.setOnItemSelectedListener(
new SpinnerOnSelectedListener());
    }

2.自定义Spinner的LayoutQ替换掉体统默认的android.R.layout.simple_spinner_item
super easy
my_spinner_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width
="fill_parent" 
    android:layout_height
="wrap_content"
    android:textSize
="12dip" 
    android:textColor
="#FF8B1500" 
    android:gravity
="center" />
修改adapterQ?br />
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
                
this,  R.layout.my_spinner_item,
                phones);
同理Q可自定义layoutQ替换掉android.R.layout.simple_spinner_dropdown_item

3.同时昄囄和文?br />自定义AdapterQ?br />
package com.yinger;

import android.content.Context;
import android.graphics.Color;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

/**
 * 自定义Adapter
 * 
@author Yinger
 * @time 2011-7-9 下午03:39:34
 * @mail melody.crazycoding@gmail.com
 
*/
public class MyAdapter extends BaseAdapter {

    
private Context ctx;
    
private int drawableIDs[];
    
private int stringIDs[];

    
public MyAdapter(Context ctx, int DrawableIDs[], int StringIDs[])
    {
        
this.ctx = ctx;
        
this.drawableIDs = DrawableIDs;
        
this.stringIDs = StringIDs;
    }

    
public int getCount() {
        
// TODO Auto-generated method stub
        return drawableIDs.length ; 
    }

    
public Object getItem(int position) {
        
// TODO Auto-generated method stub
        return drawableIDs [position]; 
    }

    
public long getItemId(int position) {
        
// TODO Auto-generated method stub
        return position;
    }

    
public View getView(int position, View convertView, ViewGroup parent) {
        
// TODO Auto-generated method stub
        LinearLayout ll = new LinearLayout( ctx ); 
        ll.setOrientation(LinearLayout. HORIZONTAL ); 
        ll.setGravity(Gravity. CENTER_VERTICAL ); 
        ImageView iv 
= new ImageView( ctx ); 
        iv.setImageResource( drawableIDs [position]); 
        iv.setLayoutParams( 
new ViewGroup.LayoutParams(10040)); 
        ll.addView(iv);                     
        TextView tv 
= new TextView( ctx ); 
        tv.setText( stringIDs [position]); 
        tv.setTextSize(
14); 
        tv.setTextColor(Color.BLUE ); 
        ll.addView(tv); 
        
return ll; 
    }
}

修改initMySpinnerҎQ?br />
private void initMySpinner() {
        
int[] phonePics = {R.drawable.apple,R.drawable.android,R.drawable.blackberry};
        
int[] phones = {   R.string.iphone, R.string.android,  R.string.blackberry};
        
        MyAdapter adapter 
= new MyAdapter(this,phonePics,phones);
        spinner.setAdapter(adapter);
        spinner.setPrompt(
"test");
        spinner.setSelection(
0true);
    }
q行l果截图Q?br />

OKQ但使用自定义的AdapterQ我们如何来获取选中的文本信息呢Q?br />在MyAdapter中,修改getViewҎQ添加黄色区域代码如下:
public View getView(int position, View convertView, ViewGroup parent) {
        
// TODO Auto-generated method stub
        LinearLayout ll = new LinearLayout( ctx ); 
        ll.setOrientation(LinearLayout. HORIZONTAL ); 
        ll.setGravity(Gravity. CENTER_VERTICAL ); 
        ImageView iv 
= new ImageView( ctx ); 
        iv.setImageResource( drawableIDs [position]); 
        iv.setLayoutParams( 
new ViewGroup.LayoutParams(10040)); 
        ll.addView(iv);                     
        TextView tv 
= new TextView( ctx ); 
        tv.setText( stringIDs [position]); 
        tv.setTextSize(
14); 
        tv.setTextColor(Color.BLUE ); 
        
tv.setTag( "tagTextView" );        
        ll.addView(tv);

        return
 ll; 
    }

重写事g中的onItemSelectedҎQ?br />
// TODO Auto-generated method stub
        public void onItemSelected(AdapterView<?> adapterView, View view, int position,
                
long id) {
            
if(adapterView.getId() == R.id.mySpinner)
            {
                LinearLayout ll 
= (LinearLayout)view; 
                TextView tv 
= (TextView)ll.findViewWithTag( "tagTextView" ); 
                String str 
= (String)tv.getText(); 
                System.out.println(
"selected===========>" + str);
            }
        }

最后,别忘了注册该事g??

Ying-er 2011-07-09 16:15 发表评论
]]>
Android 创徏复合控ghttp://www.aygfsteel.com/crazycoding/archive/2011/06/12/352115.htmlYing-erYing-erSun, 12 Jun 2011 01:53:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2011/06/12/352115.htmlhttp://www.aygfsteel.com/crazycoding/comments/352115.htmlhttp://www.aygfsteel.com/crazycoding/archive/2011/06/12/352115.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/352115.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/352115.html①自定义复合控件的布局Q?/p>

clearable_edit_text.xml:

<?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 
= "horizontal">
  
<EditText
      
android:id = "@+id/editText"
      android:layout_width 
= "200dp"
      android:layout_height 
= "wrap_content"
      
/>
  
<Button
      
android:id = "@+id/clearButton"
      android:layout_width 
= "100dp"
      android:layout_height 
= "wrap_content"
      android:text 
= "Clear"
      
/>
</LinearLayout>

很简单,不废?/p>

②选择适合攄子控件的布局c,q将其扩?

package com.yinger;

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;

public class MyClearableEditText extends LinearLayout {

    EditText editText;
    Button clearButton;

    
public MyClearableEditText(Context context, AttributeSet attrs) {
        
super(context, attrs);
        
// TODO Auto-generated constructor stub
        init();
        hookupButton();
    }

    
public MyClearableEditText(Context context) {
        
super(context);
        init();
        hookupButton();
    }

    
private void init() {
        String infService 
= Context.LAYOUT_INFLATER_SERVICE;
        LayoutInflater li;
        li 
= (LayoutInflater) getContext().getSystemService(infService);
        li.inflate(R.layout.clearable_edit_text, 
thistrue);
        editText 
= (EditText) findViewById(R.id.editText);
        clearButton 
= (Button) findViewById(R.id.clearButton);
    }

//    private void init2() {
//        setOrientation(LinearLayout.VERTICAL);
//        editText = new EditText(getContext());
//        clearButton = new Button(getContext());
//        clearButton.setText("Clear");
//        int lHeight = LayoutParams.WRAP_CONTENT;
//        int lWidth = LayoutParams.FILL_PARENT;
//        
//        addView(editText,new LinearLayout.LayoutParams(lWidth,lHeight));
//        addView(clearButton,new LinearLayout.LayoutParams(lWidth,lHeight));
//    }
    
    
private void hookupButton(){
        clearButton.setOnClickListener(
new Button.OnClickListener(){

            
public void onClick(View v) {
                
// TODO Auto-generated method stub
                editText.setText("");
            }
        });
    }
}

③引用

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation
="vertical"
    android:layout_width
="fill_parent"
    android:layout_height
="fill_parent"
    
>
<TextView  
    
android:layout_width="fill_parent" 
    android:layout_height
="wrap_content" 
    android:text
="@string/hello"
    
/>
<com.yinger.MyClearableEditText
    android:layout_width
="fill_parent" 
    android:layout_height
="wrap_content" 
/>
</LinearLayout>





Ying-er 2011-06-12 09:53 发表评论
]]>
自定义android控g——TextView q添加到ListView?/title><link>http://www.aygfsteel.com/crazycoding/archive/2011/06/11/352105.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Sat, 11 Jun 2011 13:26:00 GMT</pubDate><guid>http://www.aygfsteel.com/crazycoding/archive/2011/06/11/352105.html</guid><wfw:comment>http://www.aygfsteel.com/crazycoding/comments/352105.html</wfw:comment><comments>http://www.aygfsteel.com/crazycoding/archive/2011/06/11/352105.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/crazycoding/comments/commentRss/352105.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/crazycoding/services/trackbacks/352105.html</trackback:ping><description><![CDATA[<p>①在values文g夹下定义TextView的颜色和边距规则Q? </p> <p>颜色规则Qnotepadcolors.xml</p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; "><?</span><span style="color: #FF00FF; ">xml version="1.0" encoding="utf-8"</span><span style="color: #0000FF; ">?></span><span style="color: #000000; "><br /> </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">resources</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />   </span><span style="color: #008000; "><!--</span><span style="color: #008000; "> 面  </span><span style="color: #008000; ">--></span><span style="color: #000000; "><br />   </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">color </span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="notepad_paper"</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">#AAFFFF99</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">color</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />   </span><span style="color: #008000; "><!--</span><span style="color: #008000; "> 边缘  </span><span style="color: #008000; ">--></span><span style="color: #000000; "><br />   </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">color </span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="notepad_lines"</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">#FF0000FF</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">color</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />   </span><span style="color: #008000; "><!--</span><span style="color: #008000; "> ?nbsp; </span><span style="color: #008000; ">--></span><span style="color: #000000; "><br />   </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">color </span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="notepad_margin"</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">#90FF0000</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">color</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />   </span><span style="color: #008000; "><!--</span><span style="color: #008000; "> 文本  </span><span style="color: #008000; ">--></span><span style="color: #000000; "><br />   </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">color </span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="notepad_text"</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">#AA0000FF</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">color</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br /> </span><span style="color: #0000FF; "></</span><span style="color: #800000; ">resources</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br /> </span></div> <p>边距规则Qnotepaddimens.xml</p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; "><?</span><span style="color: #FF00FF; ">xml version="1.0" encoding="utf-8"</span><span style="color: #0000FF; ">?></span><span style="color: #000000; "><br /> </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">resources</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />     </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">dimen </span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="notepad_margin"</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">30dp</span><span style="color: #0000FF; "></</span><span style="color: #800000; ">dimen</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br /> </span><span style="color: #0000FF; "></</span><span style="color: #800000; ">resources</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br /> </span></div> <p>②创徏一个扩展原TextView的新c,q写onDrawҎ来修改视囄外观</p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; ">package</span><span style="color: #000000; "> com.yinger;<br /> <br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> android.content.Context;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> android.content.res.Resources;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> android.graphics.Canvas;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> android.graphics.Paint;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> android.util.AttributeSet;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> android.widget.TextView;<br /> <br /> </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> TodoListItemView </span><span style="color: #0000FF; ">extends</span><span style="color: #000000; "> TextView {<br /> <br />     </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> Paint marginPaint;<br />     </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> Paint linePaint;<br />     </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> paperColor;<br />     </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">float</span><span style="color: #000000; "> margin;<br /> <br />     </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> TodoListItemView(Context context, AttributeSet attrs, </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> defStyle) {<br />         </span><span style="color: #0000FF; ">super</span><span style="color: #000000; ">(context, attrs, defStyle);<br />         </span><span style="color: #008000; ">//</span><span style="color: #008000; "> TODO Auto-generated constructor stub</span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">        init();<br />     }<br /> <br />     </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> TodoListItemView(Context context, AttributeSet attrs) {<br />         </span><span style="color: #0000FF; ">super</span><span style="color: #000000; ">(context, attrs);<br />         init();<br />     }<br /> <br />     </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> TodoListItemView(Context context) {<br />         </span><span style="color: #0000FF; ">super</span><span style="color: #000000; ">(context);<br />         init();<br />     }<br /> <br />     </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> init() {<br />         Resources myResources </span><span style="color: #000000; ">=</span><span style="color: #000000; "> getResources();<br />         </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Create the paint brushes we will use in the onDraw method.</span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">        marginPaint </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Paint(Paint.ANTI_ALIAS_FLAG);<br />         marginPaint.setColor(myResources.getColor(R.color.notepad_margin));<br />         <br />         linePaint </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Paint(Paint.ANTI_ALIAS_FLAG);<br />         linePaint.setColor(myResources.getColor(R.color.notepad_lines));<br /> <br />         </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Get the paper background color and the margin width.</span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">        paperColor </span><span style="color: #000000; ">=</span><span style="color: #000000; "> myResources.getColor(R.color.notepad_paper);<br />         margin </span><span style="color: #000000; ">=</span><span style="color: #000000; "> myResources.getDimension(R.dimen.notepad_margin);<br />     }<br /> <br />     @Override<br />     </span><span style="color: #0000FF; ">protected</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> onDraw(Canvas canvas) {<br />         </span><span style="color: #008000; ">//</span><span style="color: #008000; "> TODO Auto-generated method stub<br />         </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Color as paper</span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">        canvas.drawColor(paperColor);<br /> <br />         </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Draw ruled lines</span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">        canvas.drawLine(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, </span><span style="color: #000000; ">30.0f</span><span style="color: #000000; ">, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, linePaint);<br />         canvas.drawLine(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">, getMeasuredHeight(), <br />                            getMeasuredWidth(), getMeasuredHeight(), <br />                            linePaint);<br /> <br />         </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Draw margin</span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">        canvas.drawLine(margin, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">, margin, getMeasuredHeight(), marginPaint);<br /> <br />         </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Move the text across from the margin</span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">        canvas.save();<br />         canvas.translate(margin, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">);<br /> <br />         </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Use the TextView to render the text.</span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">        </span><span style="color: #0000FF; ">super</span><span style="color: #000000; ">.onDraw(canvas);<br />         canvas.restore();<br />     }<br /> }<br /> </span></div> <p>注:要重写所有的构造方法,q样比较保险?/p> <p>-----------------------------------------------------------我是分隔U?------------------------------------------------------------------</p> <p>OKQ以上,已经实现了TextView的自定义Q下面我们看看怎么来引用它Q以ListViewZQ?/p> <p>③在layout文g夹下创徏list item 的布局规定Q?/p> <p>todolist_item.xml </p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; "><?</span><span style="color: #FF00FF; ">xml version="1.0" encoding="utf-8"</span><span style="color: #0000FF; ">?></span><span style="color: #000000; "><br /> </span><span style="color: #0000FF; "><</span><span style="color: #800000; background-color: #ffff00">com</span><span style="color: #ff0000; background-color: #ffff00">.</span><span style="color: #ff0000; background-color: #ffff00">yinger.TodoListItemView</span><span style="color: #FF0000; "><br />   xmlns:android</span><span style="color: #0000FF; ">="http://schemas.android.com/apk/res/android"</span><span style="color: #FF0000; "><br />   android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />   android:layout_height</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />   android:padding</span><span style="color: #0000FF; ">="10dp"</span><span style="color: #FF0000; "><br />   android:scrollbars</span><span style="color: #0000FF; ">="vertical"</span><span style="color: #FF0000; "><br />   android:textColor</span><span style="color: #0000FF; ">="@color/notepad_text"</span><span style="color: #FF0000; "><br />   android:fadingEdge</span><span style="color: #0000FF; ">="vertical"</span><span style="color: #FF0000; "><br /> </span><span style="color: #0000FF; ">/></span></div> <p>注意Q黄色部分是重点?br /> </p> <p>④大家熟悉的布局文gQ我q里是main.xmlQ没啥好说的?/p> <p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; "><?</span><span style="color: #FF00FF; ">xml version="1.0" encoding="utf-8"</span><span style="color: #0000FF; ">?></span><span style="color: #000000; "><br /> </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">LinearLayout </span><span style="color: #FF0000; ">xmlns:android</span><span style="color: #0000FF; ">="http://schemas.android.com/apk/res/android"</span><span style="color: #FF0000; "><br />   android:orientation</span><span style="color: #0000FF; ">="vertical"</span><span style="color: #FF0000; "><br />   android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "><br />   android:layout_height</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />   </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">EditText<br />     </span><span style="color: #FF0000; ">android:id</span><span style="color: #0000FF; ">="@+id/myEditText"</span><span style="color: #FF0000; "><br />     android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "> <br />     android:layout_height</span><span style="color: #0000FF; ">="wrap_content"</span><span style="color: #FF0000; "> <br />     android:text</span><span style="color: #0000FF; ">="New To Do Item"</span><span style="color: #FF0000; "><br />   </span><span style="color: #0000FF; ">/></span><span style="color: #000000; "><br />   </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">ListView  <br />     </span><span style="color: #FF0000; ">android:id</span><span style="color: #0000FF; ">="@+id/myListView"</span><span style="color: #FF0000; "><br />     android:layout_width</span><span style="color: #0000FF; ">="fill_parent"</span><span style="color: #FF0000; "> <br />     android:layout_height</span><span style="color: #0000FF; ">="wrap_content"</span><span style="color: #FF0000; "> <br />   </span><span style="color: #0000FF; ">/></span><span style="color: #000000; "><br /> </span><span style="color: #0000FF; "></</span><span style="color: #800000; ">LinearLayout</span><span style="color: #0000FF; ">></span></div> </p> <p>⑤和以前一L定义ListViewQ没啥区别:<br /> </p> <p> <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><span style="color: #0000FF; ">package</span><span style="color: #000000; "> com.yinger;<br /> <br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.util.ArrayList;<br /> <br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> android.app.Activity;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> android.os.Bundle;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> android.view.KeyEvent;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> android.view.View;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> android.view.View.OnKeyListener;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> android.widget.ArrayAdapter;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> android.widget.EditText;<br /> </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> android.widget.ListView;<br /> <br /> </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> TextViewDemo </span><span style="color: #0000FF; ">extends</span><span style="color: #000000; "> Activity {<br />     </span><span style="color: #008000; ">/**</span><span style="color: #008000; "> Called when the activity is first created. </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />     @Override<br />     </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> onCreate(Bundle savedInstanceState) {<br />         </span><span style="color: #0000FF; ">super</span><span style="color: #000000; ">.onCreate(savedInstanceState);<br />         setContentView(R.layout.main);<br />         <br />      </span><span style="color: #008000; ">//</span><span style="color: #008000; "> Get references to UI widgets</span><span style="color: #008000; "><br /> </span><span style="color: #000000; ">        ListView myListView </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (ListView)findViewById(R.id.myListView);<br />         </span><span style="color: #0000FF; ">final</span><span style="color: #000000; "> EditText myEditText </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (EditText)findViewById(R.id.myEditText);<br />         <br />         </span><span style="color: #0000FF; ">final</span><span style="color: #000000; "> ArrayList</span><span style="color: #000000; "><</span><span style="color: #000000; ">String</span><span style="color: #000000; ">></span><span style="color: #000000; "> todoItems </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> ArrayList</span><span style="color: #000000; "><</span><span style="color: #000000; ">String</span><span style="color: #000000; ">></span><span style="color: #000000; ">();<br />         </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> resID </span><span style="color: #000000; ">=</span><span style="color: #000000; "> R.layout.todolist_item;<br />         </span><span style="color: #0000FF; ">final</span><span style="color: #000000; "> ArrayAdapter</span><span style="color: #000000; "><</span><span style="color: #000000; ">String</span><span style="color: #000000; ">></span><span style="color: #000000; "> aa </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> ArrayAdapter</span><span style="color: #000000; "><</span><span style="color: #000000; ">String</span><span style="color: #000000; ">></span><span style="color: #000000; ">(</span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">, resID,<br />                                                                  todoItems);<br />         myListView.setAdapter(aa);<br />         <br />         myEditText.setOnKeyListener(</span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> OnKeyListener() {<br />             </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">boolean</span><span style="color: #000000; "> onKey(View v, </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> keyCode, KeyEvent event) {<br />               </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (event.getAction() </span><span style="color: #000000; ">==</span><span style="color: #000000; "> KeyEvent.ACTION_DOWN)<br />                 </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (keyCode </span><span style="color: #000000; ">==</span><span style="color: #000000; "> KeyEvent.KEYCODE_DPAD_CENTER)<br />                 {<br />                   todoItems.add(</span><span style="color: #000000; ">0</span><span style="color: #000000; ">, myEditText.getText().toString());<br />                   aa.notifyDataSetChanged();<br />                   myEditText.setText(</span><span style="color: #000000; ">""</span><span style="color: #000000; ">);<br />                   </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;<br />                 }<br />               </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;<br />             }<br />           });<br />     }<br /> }</span></div> </p> <p><br /> </p> <p>q行l果截图Q?/p> <p><img src="http://www.aygfsteel.com/images/blogjava_net/crazycoding/myTextViewDemo3.png" width="329" height="490" alt="" /><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <p><br /> </p> <img src ="http://www.aygfsteel.com/crazycoding/aggbug/352105.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/crazycoding/" target="_blank">Ying-er</a> 2011-06-11 21:26 <a href="http://www.aygfsteel.com/crazycoding/archive/2011/06/11/352105.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android中可以用标{来创徏样式http://www.aygfsteel.com/crazycoding/archive/2011/06/06/351821.htmlYing-erYing-erMon, 06 Jun 2011 10:43:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2011/06/06/351821.htmlhttp://www.aygfsteel.com/crazycoding/comments/351821.htmlhttp://www.aygfsteel.com/crazycoding/archive/2011/06/06/351821.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/351821.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/351821.html 在values下新Z个styles.xml文gQ?

<?xml version="1.0" encoding="utf-8"?>
<resources>
  
<style name="ToDoTheme" parent="@android:style/Theme.Black">
    
<item name="android:textSize">12sp</item>
  
</style>
</resources>

在manifest中引用该样式Q?

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  
package="com.paad.todolist"
  android:versionCode
="1"
  android:versionName
="1.0">
  
<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="True">
    
<activity 
      android:name
=".ToDoList"
      android:label
="@string/app_name"
      
android:theme="@style/ToDoTheme">
      
<intent-filter>
        
<action android:name="android.intent.action.MAIN" />
        
<category android:name="android.intent.category.LAUNCHER" />
      
</intent-filter>
    
</activity>
  
</application>
  
<uses-sdk android:minSdkVersion="7" />
</manifest> 

此外Q多说一_不知读者住没注意到样式支持通过在标{上使用parent属性来q行l承Q见l色部分Q?br />

注:本文参考《android 2 高~程》一?/p> 标签上用parent属性来q行l承Q见l色区域Q? 注:本文参考《android 2 高~程》一?

վ֩ģ壺 | | | | | | ɽ| ƽ| ƽ| | | ̶| ̨| ɽ| | Ƶ| ¡| | | | | ˾| | | | ϴ| | | | ͼ| ½| ϸ| | | | ĩ| | ຣʡ| | | ¬|

Ying-er 2011-06-06 18:43 发表评论
]]>
android 的尺寸单?/title><link>http://www.aygfsteel.com/crazycoding/archive/2011/06/06/351807.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Mon, 06 Jun 2011 04:58:00 GMT</pubDate><guid>http://www.aygfsteel.com/crazycoding/archive/2011/06/06/351807.html</guid><wfw:comment>http://www.aygfsteel.com/crazycoding/comments/351807.html</wfw:comment><comments>http://www.aygfsteel.com/crazycoding/archive/2011/06/06/351807.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/crazycoding/comments/commentRss/351807.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/crazycoding/services/trackbacks/351807.html</trackback:ping><description><![CDATA[<p> ①pxQ屏q像素)</p> <p>②in Q物理英寸)</p> <p>③mmQ物理毫cI</p> <p>④dpQ相对于160-dipQdots per inchQ的屏幕的非密度制约的像素)</p> <p>⑤spQ羃放比例无养IScale-independentQ的像素Q?/p> <p><br /> </p> <p>PSQ我一般用dp和sp -?</p> <img src ="http://www.aygfsteel.com/crazycoding/aggbug/351807.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/crazycoding/" target="_blank">Ying-er</a> 2011-06-06 12:58 <a href="http://www.aygfsteel.com/crazycoding/archive/2011/06/06/351807.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Android requires .class compatibility set to 5.0. Please fix project properties.http://www.aygfsteel.com/crazycoding/archive/2011/06/06/351805.htmlYing-erYing-erMon, 06 Jun 2011 04:50:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2011/06/06/351805.htmlhttp://www.aygfsteel.com/crazycoding/comments/351805.htmlhttp://www.aygfsteel.com/crazycoding/archive/2011/06/06/351805.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/351805.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/351805.html解决办法Q?

工程上右?->Android Tools-->Fix Project Properties

然后rebuild



Ying-er 2011-06-06 12:50 发表评论
]]>
【工L】获取android手机联系人的名子和号码,q以List的Ş式返?/title><link>http://www.aygfsteel.com/crazycoding/archive/2011/05/26/351044.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Thu, 26 May 2011 02:05:00 GMT</pubDate><guid>http://www.aygfsteel.com/crazycoding/archive/2011/05/26/351044.html</guid><wfw:comment>http://www.aygfsteel.com/crazycoding/comments/351044.html</wfw:comment><comments>http://www.aygfsteel.com/crazycoding/archive/2011/05/26/351044.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/crazycoding/comments/commentRss/351044.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/crazycoding/services/trackbacks/351044.html</trackback:ping><description><![CDATA[<div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff;">package</span><span style="color: #000000;"> yinger.firewall.util;<br /><br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.ArrayList;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.HashMap;<br /><br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;"> android.content.ContentResolver;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;"> android.content.Context;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;"> android.database.Cursor;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;"> android.provider.ContactsContract;<br /></span><span style="color: #0000ff;">import</span><span style="color: #000000;"> android.provider.ContactsContract.PhoneLookup;<br /><br /></span><span style="color: #008000;">/**</span><span style="color: #008000;"><br /> * ReadContactsUtil<br /> * <br /> * </span><span style="color: #808080;">@author</span><span style="color: #008000;"> Ying_er<br /> * @Email melody.crazycoding@gmail.com<br /> * @time 2011/03/30 11:57:23<br /> * </span><span style="color: #808080;">@version</span><span style="color: #008000;"> 1.00<br /> </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br /></span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">final</span><span style="color: #000000;"> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> MyReadContactsUtil {<br />    </span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />     * </span><span style="color: #808080;">@return</span><span style="color: #008000;"> contacts list<br />     </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">static</span><span style="color: #000000;"> ArrayList getContacts(Context context) {<br />        ArrayList</span><span style="color: #000000;"><</span><span style="color: #000000;">HashMap</span><span style="color: #000000;"><</span><span style="color: #000000;">String, String</span><span style="color: #000000;">>></span><span style="color: #000000;"> list </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> ArrayList</span><span style="color: #000000;"><</span><span style="color: #000000;">HashMap</span><span style="color: #000000;"><</span><span style="color: #000000;">String, String</span><span style="color: #000000;">>></span><span style="color: #000000;">();<br />        String number </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">""</span><span style="color: #000000;">;<br />        ContentResolver cr </span><span style="color: #000000;">=</span><span style="color: #000000;"> context.getContentResolver();</span><span style="color: #008000;">//</span><span style="color: #008000;"> 得到一个ContentResolver对象<br />        </span><span style="color: #008000;">//</span><span style="color: #008000;"> 得到一个游标查询对?/span><span style="color: #008000;"><br /></span><span style="color: #000000;">        Cursor cursor </span><span style="color: #000000;">=</span><span style="color: #000000;"> cr.query(ContactsContract.Contacts.CONTENT_URI, </span><span style="color: #0000ff;">null</span><span style="color: #000000;">,<br />                </span><span style="color: #0000ff;">null</span><span style="color: #000000;">, </span><span style="color: #0000ff;">null</span><span style="color: #000000;">, </span><span style="color: #0000ff;">null</span><span style="color: #000000;">);<br />        </span><span style="color: #0000ff;">while</span><span style="color: #000000;"> (cursor.moveToNext()) {<br />            </span><span style="color: #008000;">//</span><span style="color: #008000;"> 获取联系人的名字的烦?/span><span style="color: #008000;"><br /></span><span style="color: #000000;">            </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> nameFieldColumnIndex </span><span style="color: #000000;">=</span><span style="color: #000000;"> cursor<br />                    .getColumnIndex(PhoneLookup.DISPLAY_NAME);<br />            </span><span style="color: #008000;">//</span><span style="color: #008000;"> 获取联系人的名字</span><span style="color: #008000;"><br /></span><span style="color: #000000;">            String contact </span><span style="color: #000000;">=</span><span style="color: #000000;"> cursor.getString(nameFieldColumnIndex);<br />            Cursor target </span><span style="color: #000000;">=</span><span style="color: #000000;"> context.getContentResolver().query(<br />                    ContactsContract.Contacts.CONTENT_URI, </span><span style="color: #0000ff;">null</span><span style="color: #000000;">, </span><span style="color: #0000ff;">null</span><span style="color: #000000;">, </span><span style="color: #0000ff;">null</span><span style="color: #000000;">,<br />                    </span><span style="color: #0000ff;">null</span><span style="color: #000000;">);<br />            target.moveToFirst();<br />            </span><span style="color: #008000;">//</span><span style="color: #008000;"> 得到联系人的ID</span><span style="color: #008000;"><br /></span><span style="color: #000000;">            String contentId </span><span style="color: #000000;">=</span><span style="color: #000000;"> cursor.getString(target<br />                    .getColumnIndex(ContactsContract.Contacts._ID));<br />            String isPnone </span><span style="color: #000000;">=</span><span style="color: #000000;"> cursor<br />                    .getString(cursor<br />                            .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));<br />            </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (Integer.parseInt(isPnone) </span><span style="color: #000000;">></span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">) {<br />                Cursor phone </span><span style="color: #000000;">=</span><span style="color: #000000;"> context.getContentResolver().query(<br />                        ContactsContract.CommonDataKinds.Phone.CONTENT_URI,<br />                        </span><span style="color: #0000ff;">null</span><span style="color: #000000;">,<br />                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;"><br />                                </span><span style="color: #000000;">+</span><span style="color: #000000;"> contentId, </span><span style="color: #0000ff;">null</span><span style="color: #000000;">, </span><span style="color: #0000ff;">null</span><span style="color: #000000;">);<br />                </span><span style="color: #0000ff;">while</span><span style="color: #000000;"> (phone.moveToNext()) {<br />                    </span><span style="color: #008000;">//</span><span style="color: #008000;"> 得到联系人电?/span><span style="color: #008000;"><br /></span><span style="color: #000000;">                    number </span><span style="color: #000000;">=</span><span style="color: #000000;"> phone<br />                            .getString(phone<br />                                    .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));<br />                    HashMap</span><span style="color: #000000;"><</span><span style="color: #000000;">String, String</span><span style="color: #000000;">></span><span style="color: #000000;"> map </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> HashMap</span><span style="color: #000000;"><</span><span style="color: #000000;">String, String</span><span style="color: #000000;">></span><span style="color: #000000;">();<br />                    map.put(</span><span style="color: #000000;">"</span><span style="color: #000000;">number</span><span style="color: #000000;">"</span><span style="color: #000000;">, number);<br />                    map.put(</span><span style="color: #000000;">"</span><span style="color: #000000;">name</span><span style="color: #000000;">"</span><span style="color: #000000;">, contact);</span><span style="color: #000000;"><br />                    number </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">""</span><span style="color: #000000;">;<br />                    list.add(map);<br />                }<br />                phone.close();<br />            }<br />        }<br />        cursor.close();<br />        </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> list;<br />    }<br />}<br /></span></div><img src ="http://www.aygfsteel.com/crazycoding/aggbug/351044.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/crazycoding/" target="_blank">Ying-er</a> 2011-05-26 10:05 <a href="http://www.aygfsteel.com/crazycoding/archive/2011/05/26/351044.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>q在用递归删除文g夹及里面的文件吗Qandroid下一行命令搞定!http://www.aygfsteel.com/crazycoding/archive/2011/05/25/350983.htmlYing-erYing-erWed, 25 May 2011 03:31:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2011/05/25/350983.htmlhttp://www.aygfsteel.com/crazycoding/comments/350983.htmlhttp://www.aygfsteel.com/crazycoding/archive/2011/05/25/350983.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/350983.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/350983.html/**
     * delete Memory APP_ROOT (menus)
     
*/
    
private void deleteMemoryRoot() {
        
try {
            Runtime.getRuntime().exec(
                    
"rm -r " + fileUtils.getCurrentRoot() + APP_ROOT);
            
try {
                Thread.sleep(
500);
            } 
catch (InterruptedException e) {
                
// TODO Auto-generated catch block
                e.printStackTrace();
            }
        } 
catch (IOException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

注:刚刚执行完此命o后,android很疲惫,需要睡一会儿Q否则再Ҏ路径做文件操作会报错——q才是我最惌的。。?img src ="http://www.aygfsteel.com/crazycoding/aggbug/350983.html" width = "1" height = "1" />

Ying-er 2011-05-25 11:31 发表评论
]]>
使用PreferenceActivityӞ如何获取ListPreference中选中的?/title><link>http://www.aygfsteel.com/crazycoding/archive/2011/04/05/347641.html</link><dc:creator>Ying-er</dc:creator><author>Ying-er</author><pubDate>Tue, 05 Apr 2011 07:47:00 GMT</pubDate><guid>http://www.aygfsteel.com/crazycoding/archive/2011/04/05/347641.html</guid><wfw:comment>http://www.aygfsteel.com/crazycoding/comments/347641.html</wfw:comment><comments>http://www.aygfsteel.com/crazycoding/archive/2011/04/05/347641.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/crazycoding/comments/commentRss/347641.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/crazycoding/services/trackbacks/347641.html</trackback:ping><description><![CDATA[汗~~~研究了一天,貌似ListPreference中根本就没有什么回调函数可以用<br /> 于是Q向上一层,把注意力集中于SharedPreferencesQ?br /> 发现有这么个接口QonSharedPreferenceChanged<br /> q试试看的态度Q实C该接口,发现此方法可行,先将部分代码分n如下Q?br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;">package</span><span style="color: #000000;"> yinger.firewall;<br /> <br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> android.content.SharedPreferences;<br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> android.content.SharedPreferences.OnSharedPreferenceChangeListener;<br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> android.os.Bundle;<br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> android.preference.CheckBoxPreference;<br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> android.preference.ListPreference;<br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> android.preference.Preference;<br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> android.preference.PreferenceActivity;<br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> android.preference.PreferenceManager;<br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> android.preference.PreferenceScreen;<br /> <br /> </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> CallFireWall </span><span style="color: #0000ff;">extends</span><span style="color: #000000;"> PreferenceActivity </span><span style="color: #0000ff;">implements</span><span style="color: #000000;"><br />         OnSharedPreferenceChangeListener {<br />     ListPreference lp </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;">;</span><span style="color: #000000;"><br />     String whiteMode </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">1</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />     String blackMode </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">2</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br /> <br />     </span><span style="color: #008000;">/**</span><span style="color: #008000;"> Called when the activity is first created. </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />     @Override<br />     </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> onCreate(Bundle savedInstanceState) {<br />         </span><span style="color: #0000ff;">super</span><span style="color: #000000;">.onCreate(savedInstanceState);<br />         addPreferencesFromResource(R.xml.preferences);<br />         </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.setTitle(</span><span style="color: #000000;">"</span><span style="color: #000000;">Ying_er</span><span style="color: #000000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">"</span><span style="color: #000000;">  Call Safe</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />         SharedPreferences prefs </span><span style="color: #000000;">=</span><span style="color: #000000;"> PreferenceManager<br />                 .getDefaultSharedPreferences(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">);<br />         prefs.registerOnSharedPreferenceChangeListener(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">);</span><span style="color: #000000;"><br />         lp </span><span style="color: #000000;">=</span><span style="color: #000000;"> (ListPreference) findPreference(getString(R.string.pref_mode_key));</span><span style="color: #000000;"><br />     }<br /> <br />     @Override<br />     </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">boolean</span><span style="color: #000000;"> onPreferenceTreeClick(PreferenceScreen preferenceScreen,<br />             Preference preference) {<br />         </span><span style="color: #008000;">//</span><span style="color: #008000;"> TODO Auto-generated method stub</span><span style="color: #000000;"><br />         </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> </span><span style="color: #0000ff;">super</span><span style="color: #000000;">.onPreferenceTreeClick(preferenceScreen, preference);<br />     }<br />     <br />     @Override<br />     </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> onSharedPreferenceChanged(SharedPreferences sharedPreferences,<br />             String key) {<br />         </span><span style="color: #008000;">//</span><span style="color: #008000;"> TODO Auto-generated method stub</span><span style="color: #008000;"><br /> </span><span style="color: #000000;">        System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">onSharedPreferenceChanged</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />         </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (key </span><span style="color: #000000;">==</span><span style="color: #000000;"> getString(R.string.pref_mode_key)){<br />             System.out.println(lp.getValue());<br />             </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(lp.getValue().equals(whiteMode)){<br />                 <br />             }<br />         }<br />     }<br /> }</span></div> <br /> 注意Q该事g需要注册。既Q?br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #000000;">prefs.registerOnSharedPreferenceChangeListener(</span><span style="color: #0000ff;">this</span><span style="color: #000000;">);<br /> </span></div> <br /> <br /> <img src ="http://www.aygfsteel.com/crazycoding/aggbug/347641.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/crazycoding/" target="_blank">Ying-er</a> 2011-04-05 15:47 <a href="http://www.aygfsteel.com/crazycoding/archive/2011/04/05/347641.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>generating final archive: Debug Certificate expired on 11-3-27 下午3:05 MyMp3Player Unknown Android Packaging Problemhttp://www.aygfsteel.com/crazycoding/archive/2011/03/27/347110.htmlYing-erYing-erSun, 27 Mar 2011 09:55:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2011/03/27/347110.htmlhttp://www.aygfsteel.com/crazycoding/comments/347110.htmlhttp://www.aygfsteel.com/crazycoding/archive/2011/03/27/347110.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/347110.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/347110.html   Error generating final archive: Debug Certificate expired on 11-3-27 下午3:05 MyMp3Player Unknown Android Packaging  Problem   
而且目上有个小U叉
原因QGoogle官方l出了解军_法:

To fix this problem, simply delete the debug.keystore file. The default storage location for AVDs is in ~/.android/avd on OS X and Linux, in C:\Documents and Settings\\.android\ on Windows XP, and in C:\Users\\.android\ on Windows Vista.

The next time you build, the build tools will regenerate a new keystore and debug key

也就是删?android文g夹下的debug.keystore文gQ然后重新build一下获取新的debug.keystore。这h建项目时正怺?br /> 我表C很囧?br />



Ying-er 2011-03-27 17:55 发表评论
]]>
java.net.ConnectException: Connection 127.0.0.1:8080 refusedhttp://www.aygfsteel.com/crazycoding/archive/2011/03/13/346160.htmlYing-erYing-erSun, 13 Mar 2011 12:36:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2011/03/13/346160.htmlhttp://www.aygfsteel.com/crazycoding/comments/346160.htmlhttp://www.aygfsteel.com/crazycoding/archive/2011/03/13/346160.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/346160.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/346160.html 原因Q模拟器把自己当成主ZQ即Q将127.0.0.1指向了自?br /> 解决办法Qandroid有个内置的ipQ?0.0.22Q用该ip来访问本地机?br /> 既:
原urlQhttp://localhost:8080/androidLoadTest/web/test.txt
改ؓQhttp://10.0.2.2:8080/androidLoadTest/web/test.txt



Ying-er 2011-03-13 20:36 发表评论
]]>
ERROR: the user data image is used by another emulator. abortinghttp://www.aygfsteel.com/crazycoding/archive/2011/03/13/346158.htmlYing-erYing-erSun, 13 Mar 2011 12:14:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2011/03/13/346158.htmlhttp://www.aygfsteel.com/crazycoding/comments/346158.htmlhttp://www.aygfsteel.com/crazycoding/archive/2011/03/13/346158.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/346158.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/346158.html 解决办法Q打开 C:/Documents and Settings/users/.android/avd/你所使用的模拟器名称
删去?lockl尾的文件夹卛_

Ying-er 2011-03-13 20:14 发表评论
]]>
即HelloWorld?java.lang.NullPointerException at com.android.ddmlib.Client.sendAndConsume(Client.java:572)http://www.aygfsteel.com/crazycoding/archive/2011/03/09/346031.htmlYing-erYing-erWed, 09 Mar 2011 08:16:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2011/03/09/346031.htmlhttp://www.aygfsteel.com/crazycoding/comments/346031.htmlhttp://www.aygfsteel.com/crazycoding/archive/2011/03/09/346031.html#Feedback1http://www.aygfsteel.com/crazycoding/comments/commentRss/346031.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/346031.html java.lang.NullPointerException
    at com.android.ddmlib.Client.sendAndConsume(Client.java:572)
    at com.android.ddmlib.HandleHello.sendHELO(HandleHello.java:142)
    at com.android.ddmlib.HandleHello.sendHelloCommands(HandleHello.java:65)
    at com.android.ddmlib.Client.getJdwpPacket(Client.java:671)
    at com.android.ddmlib.MonitorThread.processClientActivity(MonitorThread.java:317)
    at com.android.ddmlib.MonitorThread.run(MonitorThread.java:263)

[2011-03-09 15:39:23 - ddms]null
java.lang.NullPointerException
    at com.android.ddmlib.Client.sendAndConsume(Client.java:572)
    at com.android.ddmlib.HandleHello.sendHELO(HandleHello.java:142)
    at com.android.ddmlib.HandleHello.sendHelloCommands(HandleHello.java:65)
    at com.android.ddmlib.Client.getJdwpPacket(Client.java:671)
    at com.android.ddmlib.MonitorThread.processClientActivity(MonitorThread.java:317)
    at com.android.ddmlib.MonitorThread.run(MonitorThread.java:263)

具体原因不明Q但修改下AVD SDCard的SizeOK了?囧死?br />


Ying-er 2011-03-09 16:16 发表评论
]]>
androidq_架构模型http://www.aygfsteel.com/crazycoding/archive/2010/11/05/337280.htmlYing-erYing-erFri, 05 Nov 2010 01:14:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2010/11/05/337280.htmlhttp://www.aygfsteel.com/crazycoding/comments/337280.htmlhttp://www.aygfsteel.com/crazycoding/archive/2010/11/05/337280.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/337280.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/337280.html

PSQ?br /> Application framework: 可重用的和可替换的组仉分,在这个层面上Q所有的软g都是q等的?br /> Dalvik virtul machine: 一个基于Linux的虚拟机?br /> Integrated browser: 一个基于开源的WebKit引擎的浏览器Q在应用E序层?br /> Optimized graphics: 包含一个自定义?D囑Ş库和ZOpenGL ES 1.0 标准?D实现?br /> SQLite: 数据?br /> Media support: 通用的音频,视频和对各种囄格式的支?MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
GSM Telephony: GSM Ud|络, g支持?br /> Bluetooth, EDGE, 3G, and WiFi: 都依赖于g支持?br /> Camera, GPS, compass, and accelerometer: 都依赖于g支持?br /> Rich development environment: 包含一套完整的开发工具集Q方便跟t调试,内存和性能试Q而且提供了Eclipse的插件?br />







Ying-er 2010-11-05 09:14 发表评论
]]>
android Installed Packages?Faild to fetch URLhttp://www.aygfsteel.com/crazycoding/archive/2010/09/09/331470.htmlYing-erYing-erThu, 09 Sep 2010 02:14:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2010/09/09/331470.htmlhttp://www.aygfsteel.com/crazycoding/comments/331470.htmlhttp://www.aygfsteel.com/crazycoding/archive/2010/09/09/331470.html#Feedback0http://www.aygfsteel.com/crazycoding/comments/commentRss/331470.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/331470.html http://www.android123.com.cn/zhongwensdk/366.html



Ying-er 2010-09-09 10:14 发表评论
]]>
……is missing required source folder genhttp://www.aygfsteel.com/crazycoding/archive/2010/03/27/316701.htmlYing-erYing-erSat, 27 Mar 2010 08:14:00 GMThttp://www.aygfsteel.com/crazycoding/archive/2010/03/27/316701.htmlhttp://www.aygfsteel.com/crazycoding/comments/316701.htmlhttp://www.aygfsteel.com/crazycoding/archive/2010/03/27/316701.html#Feedback1http://www.aygfsteel.com/crazycoding/comments/commentRss/316701.htmlhttp://www.aygfsteel.com/crazycoding/services/trackbacks/316701.html 创徏新的Android目后L提示错误QProject ... is missing required source folder: 'gen'?br /> 解决办法:Eclipse自动生成的R.java删掉Q刷新项目,R.java便会重新生成



Ying-er 2010-03-27 16:14 发表评论
]]>