Sha256: df32a1ce68c0220ca02ac0af056e0c1b03d37961d1cdbafd925c6cbc372a94b6

Contents?: true

Size: 1.28 KB

Versions: 8

Compression:

Stored size: 1.28 KB

Contents

require 'ruboto/widget'

ruboto_import_widgets :LinearLayout, :ListView, :TextView

class SubclassOfArrayAdapter < Java::AndroidWidget::ArrayAdapter
  def getView(position, convert_view, parent)
    @inflater ||= context.getSystemService(Context::LAYOUT_INFLATER_SERVICE)
    row = convert_view ? convert_view : @inflater.inflate(mResource, nil)
    row.findViewById(mFieldId).text = "[#{get_item(position)}]"
    row
  rescue Exception
    puts "Exception getting list item view: #$!"
    puts $!.backtrace.join("\n")
    convert_view
  end
end

class Java::AndroidWidget::ArrayAdapter
  field_reader :mResource, :mFieldId
end

class SubclassActivity
  def onCreate(bundle)
    super
    setTitle File.basename(__FILE__).chomp('_activity.rb').split('_').map { |s| "#{s[0..0].upcase}#{s[1..-1]}" }.join(' ')

    adapter = SubclassOfArrayAdapter.new(self, android.R.layout.simple_list_item_1, android.R.id.text1, ['Record one', 'Record two'])

    self.content_view =
        linear_layout :orientation => LinearLayout::VERTICAL do
          @text_view = text_view text: 'What hath Matz wrought?', id: 42
          @list_view = list_view adapter: adapter, id: 43,
              on_item_click_listener: ->(_, view, _, _) { @text_view.text = view.findViewById(android.R.id.text1).text }
        end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
ruboto-1.6.1 test/activity/subclass_activity.rb
ruboto-1.6.0 test/activity/subclass_activity.rb
ruboto-1.5.0 test/activity/subclass_activity.rb
ruboto-1.4.1 test/activity/subclass_activity.rb
ruboto-1.4.0 test/activity/subclass_activity.rb
ruboto-1.3.1 test/activity/subclass_activity.rb
ruboto-1.3.0 test/activity/subclass_activity.rb
ruboto-1.2.0 test/activity/subclass_activity.rb