WEB开发网
开发学院软件开发Java 手机上的 Scala:使用 Android、Scala 和 Eclipse... 阅读

手机上的 Scala:使用 Android、Scala 和 Eclipse 创建移动应用程序

 2009-12-25 00:00:00 来源:WEB开发网   
核心提示: 视图背后的代码解释创建 UI 的 Scala 代码的最简单方式是先看看代码,然后走查一遍,手机上的 Scala:使用 Android、Scala 和 Eclipse 创建移动应用程序(6),对于任何应用程序,都是在应用程序的 AndroidManifest.xml 文件中定义应用程序的默认活动,

视图背后的代码

解释创建 UI 的 Scala 代码的最简单方式是先看看代码,然后走查一遍。对于任何应用程序,都是在应用程序的 AndroidManifest.xml 文件中定义应用程序的默认活动。任何 UI 背后都有一个 Activity 类,默认的 Activity 定义当应用程序初次装载时执行的 Activity 类。对于像本文这样简单的应用程序,有一个 Converter 类,清单 4 中显示了它的源代码。


清单 4. Converter 活动类
class Converter extends Activity{ 
  import ConverterHelper._ 
  private[this] var amountValue:EditText = null 
  private[this] var uom:Spinner= null 
  private[this] var convertButton:Button = null 
  private[this] var resultValue:TextView = null 
   
  override def onCreate(savedInstanceState:Bundle){ 
   super.onCreate(savedInstanceState) 
   setContentView(R.layout.main) 
   uom = findViewById(R.id.uom_value).asInstanceOf[Spinner] 
   this.setUomChoice(ENGLISH) 
   amountValue = findViewById(R.id.amount).asInstanceOf[EditText] 
   convertButton = findViewById(R.id.convert_button).asInstanceOf[Button] 
   resultValue = findViewById(R.id.result_value).asInstanceOf[TextView] 
   convertButton.setOnClickListener( () => { 
     val unit = uom.getSelectedItem.asInstanceOf[String] 
     val amount = parseDouble(amountValue.getText.toString) 
     val result = UnitsConverter.convert(Measurement(unit,amount)) 
     resultValue.setText(result) 
   }) 
  } 
  override def onCreateOptionsMenu(menu:Menu) = { 
   super.onCreateOptionsMenu(menu) 
   menu.add(NONE, 0, 0, R.string.english_units) 
   menu.add(NONE, 1, 1, R.string.metric_units) 
   true 
  } 
  override def onMenuItemSelected(featureId:Int, item:MenuItem) = { 
   super.onMenuItemSelected(featureId, item) 
   setUomChoice(if (item.getItemId == 1) METRIC else ENGLISH) 
   true 
  } 
  private 
  def setUomChoice(unitOfMeasure:UnitsSystem){ 
   if (uom == null){ 
    uom = findViewById(R.id.uom_value).asInstanceOf[Spinner] 
   } 
   val arrayId = unitOfMeasure match { 
    case METRIC => R.array.metric_units 
    case _ => R.array.english_units 
   } 
   val units = new ArrayAdapter[String](this, R.layout.spinner_view, 
    getResources.getStringArray(arrayId)) 
   uom.setAdapter(units)    
  } 
} 

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:手机 Scala 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接