Contenu connexe Similaire à EclipseCon2011 Cross-Platform Mobile Development with Eclipse (20) EclipseCon2011 Cross-Platform Mobile Development with Eclipse6. Java
public class SpeakersList extends GenericListActivity<Speaker> {
List<Speaker> speakers;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("Speakers");
speakers = getItemsFromProvider();
ArrayList<AbstractRowAdapter> rowAdapters = new ArrayList<AbstractRowAdapter>();
Iterable<Speaker> items1 = speakers;
for (Speaker i : items1)
rowAdapters.add(new Cell1(i));
setListAdapter(new GenericItemAdapter(this, rowAdapters));
finishCreation();
}
7. C#
public partial class SpeakerDetailsDetailsView : PhoneApplicationPage
{
public SpeakerDetailsDetailsView()
{
InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
string selectedIndex = "";
if (NavigationContext.QueryString.TryGetValue("itemByIndex", out selectedIndex))
{
int index = int.Parse(selectedIndex);
DataContext = App.RootViewModelProvider.BlogpostsModelProvider().BlogItems[index];
}
}
}
8. Objective-C
@implementation SpeakersListViewController
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if(section == 0) {
return [[[contentProvider valueForKeyPath:@"content"] asArray] count];
} else
return 0;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
id item = [self.items objectAtIndex: indexPath.row];
IPContentProvider *provider = [(itemisAppProviders*)contentProvider.providers
providerForSpeakerByName: [item valueForKeyPath:@"name"]];
SpeakerDetailsViewController *controller = [[SpeakerDetailsViewController alloc] init];
controller.contentProvider = provider;
[self.navigationController pushViewController: controller animated: TRUE];
[controller release];
}
9. HTML
{% extends "generated/application.html" %}
{% block title%}Speakers{% endblock %}
{% block content_class %}table list{% endblock %}
{% block content %}
<ul>
{% for s in data|to_list %}
<li>
{% url views.SpeakerDetailsBySpeakerByName s.name|urlencode as url %}
<a href="{{ url }}">
<div class="cell_text">{{s.name|safe}}</div>
</a>
</li>
{% endfor %}
</ul>
{% endblock %}
18. Views
Session
Cells title
room
Navigation
Entities ContentProviders
19. DSL for mobile
tabbarApplication itemisApp {
button {
title= "Tuesday"
icon= "calendar.png"
view= SessionList( SessionsByDay("2011-03-22") )
}
button {
title= "Wednesday"
icon= "calendar.png"
view= SessionList( SessionsByDay("2011-03-23") )
}
button {
title= "Thursday"
icon= "calendar.png"
view= SessionList( SessionsByDay("2011-03-24") )
}
button {
title= "Speakers"
icon= "person.png"
view= SpeakersList( AllSpeakers() )
}
}