Skip to content

Quickstart

Lahiru Sahan Jayasinghe edited this page Jun 13, 2013 · 13 revisions

Leverage features by extending `IckleActivity`.
public class TokensActivity extends IckleActivity {
}

Manage activity configuration.

@Fullscreen
@Layout(R.layout.act_tokens)
public class TokensActivity extends IckleActivity {
}

Inject views and resources.

@Fullscreen
@Layout(R.layout.act_tokens)
public class TokensActivity extends IckleActivity {

    @InjectView(R.id.token)
    private TextView token;

    @InjectInteger(R.integer.public_token)
    private Integer publicToken;
	

    @Override
    protected void onResume() {
		
        super.onResume();
        token.setText(publicToken.toString());
    }
}

...or let IckleBot figure it out.

@InjectAll
@Fullscreen
@Layout(R.layout.act_tokens)
public class TokensActivity extends IckleActivity {

    private TextView token;
    private Integer public_token;


    @Override
    protected void onResume() {
		
        super.onResume();
        token.setText(public_token.toString());
    }
}

Notice that the variable names now assume the id.


Preserve instance state.
@InjectAll
@Fullscreen
@Layout(R.layout.act_tokens)
public class TokensActivity extends IckleActivity {

    private TextView token;
    
    @Stateful
    private Double randomId = Math.random();

	
    @Override
    protected void onResume() {
		
        super.onResume();
        token.setText(randomId.toString());
    }
}

Bind an event listener.
@Layout(R.layout.act_messenger)
@Title(R.string.ttl_act_messenger)
public class MessengerActivity extends IckleActivity {

    @InjectView(R.id.btn_send)
    private Button btnSend;

    ...   

    @Click(R.id.btn_send)
    protected void submit(Button button) {
		
        button.setText("Sending...");
        ...
    }
}

Run a background task.
@Layout(R.layout.act_news)
@Title(R.string.ttl_act_news)
public class NewsActivity extends IckleActivity {

    private static final int ASYNC_SYNC_NEWS = 0;
    ...

    @Override
    protected void onResume() {

        super.onResume();
        runAsyncTask(ASYNC_SYNC_NEWS);
    }

    @Async(ASYNC_SYNC_NEWS)
    private void refreshNews() { 
        ....
    }
}

Bind models to views.
@Layout(R.layout.act_home)
@Title(R.string.ttl_act_home)
public class HomeActivity extends IckleActivity {

    @Override
    protected void onPostCreate(Bundle savedInstanceState) {

        super.onPostCreate(savedInstanceState);

        User user = accountService.getCurrentUser(getBaseContext());
        bindManager.bind(profileSection, user);
    }

    ...
}

Detect changes in network state.
@Layout(R.layout.act_mail)
@Title(R.string.ttl_act_mail)
public class MailActivity extends IckleActivity {

    @Override
    protected void onNetworkConnected() {

        inbox.refresh();
    }
}