編輯:關於Android編程
通過寫一個簡單的配置文件,自動擴展生成相應的代碼,從而可以偷點小懶。
配置文件如下:
TextView:money TextView:name TextView:age ImageView:headImg
require 'erb' class FindViewById class << self def get_type_ab(type) case type when "TextView" "Tv" when "ImageView" "Iv" when "GridView" "Gv" when "ListView" "Lv" when "Gallery" "Gv" end end def get_attrs_from(conf_file) File.open(conf_file) do |f| result = [] f.each_line do |line| line = line.chomp line = line.gsub(/\s+/,"") type_name = line.split(":") next if type_name.size != 2 name = nil name = "m" << type_name[1].capitalize ab = get_type_ab(type_name[0]) name << ab if ab != nil attr = Attr.new(type_name[0], name) attr.id = type_name[1] result << attr end result end end def out(conf_file) erb = ERB.new(template(conf_file)) str = erb.result(binding) end def template(conf_file) template = %{ <% attrs = FindViewById.get_attrs_from(conf_file) %> <% attrs.each do |attr| %> private <%= attr.type %> <%= attr.name %>; <% end %> private void initViews() { <% attrs.each do |attr| %> <%= attr.name %> = (<%= attr.type %>)findViewById(R.id.<%= attr.id %>); <% end %> } <% attrs.each do |attr| %> <<%= attr.type %> android:layout_width="wrap_content" android_layout_height="wrap_content" android:id="@+id/<%= attr.id %>" /> <% end %> } end end class Attr def initialize(type,name) @type,@name = type,name end def id=(id) @id = id end attr_accessor :type, :name,:id end end #---------------------------------------run code---------------------------- conf_file = "test.conf" conf_file = ARGV[0] if ARGV.size > 0 generate_code = FindViewById.out(conf_file) puts generate_code
private TextView mMoneyTv; private TextView mNameTv; private TextView mAgeTv; private ImageView mHeadimgIv; private void initViews() { mMoneyTv = (TextView)findViewById(R.id.money); mNameTv = (TextView)findViewById(R.id.name); mAgeTv = (TextView)findViewById(R.id.age); mHeadimgIv = (ImageView)findViewById(R.id.headImg); }
Android插件開發初探對於Android的插件化其實已經討論已久了,但是市面上還沒有非常靠譜成熟的插件框架供我們使用。這裡我們就嘗試性的對比一下Java中,我們使用插
最近根據項目需要,整理了一個相對比較全面的 WheelView 使用控件,借用之前看到的一句話來說,就是站在巨人肩膀上,進行了一些小調整。 這裡先貼上效果圖一般常用的時間
App工程文件分析關於如何創建一個最簡單的Android App請參照鏈接:《 Android學習筆記(一)環境安裝及第一個hello world 》 http://ww
公鑰和私鑰的概念在現代密碼體制中加密和解密是采用不同的密鑰(公開密鑰),也就是公開密鑰算法(也叫非對稱算法、雙鑰算法)”,每個通信方均需要兩個密鑰,即公鑰和私