Показать сообщение отдельно
Старый 23.01.2017, 12:36   #9
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Полезные находки

Gradle Retrolambda Plugin (ссылка)

Что: Плагин, который позволяет юзать лямбды в старых версиях джавы (нативно они доступны в java 8 ).

Зачем: повышает читабельность кода, избавляет от необходимости писать "лишний" шлак код.

Примеры:

было
view.setOnClickListener(new View.OnClickListener() {
    @
Override
    
public void onClick(View v) {
        
/** делаем что-то **/
    
}
}); 
стало
view.setOnClickListener(-> /** делаем что-то, однострочный блок. **/); 
или
view.setOnClickListener(-> {
    
/** делаем что-то, многострочный блок. **/
}); 
Ещё частый гость - Runnable с единственным методом run.

слушатель для кнопки "оставить отзыв".
было
View.OnClickListener listener = new View.OnClickListener() {
    @
Override
    
public void onClick(View v) {
        
startActivity(new Intent(Intent.ACTION_VIEWUri.parse("market://details?id=" getPackageName())));
        
Metrica.reportEvent("rate us dialog : rate");
        
rateHelper.setState(RateHelper.STATE_RATED);
        
dialog.dismiss();

        
/** показываем диалог "спасибо за отзыв" через 1,2 сек */
        
handler.postDelayed(new Runnable() {
            @
Override
            
public void run() {
                
showDialog_RateUsRated();
            }
        }, 
1200);
    }
}; 
стало
View.OnClickListener listener -> { // упрощение #1
    
    
startActivity(new Intent(Intent.ACTION_VIEWUri.parse("market://details?id=" getPackageName())));
    
Metrica.reportEvent("rate us dialog : rate");
    
rateHelper.setState(RateHelper.STATE_RATED);
    
dialog.dismiss();

    
/** показываем диалог "спасибо за отзыв" через 1,2 сек */
    
handler.postDelayed(() -> showDialog_RateUsRated(), 1200); // упрощение #2
}; 
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (23.01.2017)