В моем классе адаптера клиента для recyclerview Я добавляю кликов на каждой кнопке в одном элементе. Тем не менее, у меня довольно мало кнопок, к которым я должен добавить слушателей кликов, и делает это, делает мой мой код очень длинным, так как у меня около 3-4 слушателей. Мне было интересно, можно ли сократить код прослушивателя кликов? Во время моих исследований по этому вопросу я встретил выражение лямбда, однако либо они не работают в адаптерах клиентов, либо я не могу заставить их работать.Как использовать лямбда-выражения/Сократить onclicklisteners android studio
Это пример того, что я использую atm: отлично работает, однако у меня есть 4 из них, поэтому я хочу уменьшить код в максимально возможной степени;
myHolder.button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
// Do something
}
});
Из исследований я попытался это:
myHolder.button.setOnClickListener(view -> button.setText("Working"));
Этот код дают ошибку говоря: лямбда-выражения не поддерживаются на этом уровне языка
Я также попытался это:
myHolder.button.setOnClickListener((View v) -> {
//Do something
});
дает ту же ошибку, что и выше.
Есть ли другие способы сделать код короче?
Любая помощь будет приятной. Благодарю.
EDITED:
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId 'com.project.example'
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "6.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors {
}
}
..... зависимости
Если вы хотите использовать Java 8 функций (не все из них, ум), вы можете [скомпилировать с помощью Джека] (http://tools.android.com/tech -docs/jackandjill). – Patrick