loading...

Jiří Hýsek

nájemný programátor

Jsem ostřílený programátor v Ruby on Rails, mám více než 13 let zkušeností v komerční sféře. Praxe mě naučila dbát na spolehlivost, udržovatelnost a použitelnost. Věřím, že nejlepší řešení je to nejjednodušší.

chcete zrealizovat Váš projekt?

 

Android na Coursera.org, týden 2

Courseamotion

Jak jsem psal posledně, chtěl jsem nějaké příklady z kurzu programování Android aplikací na Coursera.org přepisovat do RubyMotion.

 

Chtěl jsem přepsat příklad MapLocation, o kterém se v přednášce mluví. Povedlo se načíst layout, povedlo se napojit akci na tlačítko a vytvořit intent. Dohledal jsem přímo v dokumentaci Androidu všechny třídy, přepsal tak, aby tomu rozumělo RubyMotion, zjistil, že pro mapy musím přilinkovat další knihovu Google Play Services, nastavit oprávnění a podobně...  ale když se pokusím otevřít mapu přes startActivity, spadne to jen s hláškou "VM aborting". Kód vypadá nadějně, mohlo by to podle mě fungovat. Ale jestli je tam něco špatně, nebo je to problém simulátoru nebo je to nějaký chyba betaverze, to nevím.. spíš dělám něco špatně.

 

Celý kód je na githubu. Soubor app/main_activity.rb vypadá takhle

class ShowMapButtonListener
  attr_accessor :addrText

  def onClick(view)
    begin

      @geoIntent=Android::Content::Intent.new(
        Android::Content::Intent::ACTION_VIEW,
        Android::Net::Uri.parse("geo:0,0?q=#{addrText.text}"))

      view.getContext().startActivity(@geoIntent)

    rescue => error
      puts "ERROR: #{error.message}"
    end
  end
end


class MainActivity < Android::App::Activity

  def onCreate(savedInstanceState)
    super

    setContentView(resources.getIdentifier('main', 'layout', packageName))
    addrText=findViewById(resources.getIdentifier('location', 'id', packageName))
    button  =findViewById(resources.getIdentifier('mapButton', 'id', packageName))

    @listener=ShowMapButtonListener.new
    @listener.addrText=addrText
    button.onClickListener=@listener
  end
end

 

I když mám spíš podezření, že problém bude někde v nějaké konfiguraci. Pro konfiguraci Rakefile jsem vyšel z tohoto oficiálního příkladu. Ale oficiální přiklad mi po pokusu zobrazit mapu padá taky.. Každopádně kdyby to někdo dokázal zprovoznit, dejte prosím vědět, v čem byla chyba.

Zpět na seznam článků