2016-12-21 10 views
0

В настоящее время я создаю приложение, которое позволяет пользователям давать обратную связь клиенту с помощью метода переключателей, например. 1-5 или Плохо-Удивительно. Однако кнопки должны быть «смайлами» пользовательских изображений.Android - создание кнопок радиосвязи от OnClickListener ImageViews

Я попытался создать свои собственные радиокнопки, но это очень больно, а изображения низки, потому что размеры должны быть точными. Вместо этого я решил сделать несколько изображений и использовать OnClickListeners, и все идет очень хорошо.

Однако я борюсь с тем, как сделать OnClickListeners. В основном я хочу, чтобы пользователь мог только щелкнуть по одному изображению на вопрос, как переключатель. Когда они нажмут изображение, изображение изменится на другое. Но пользователю не удастся одновременно щелкнуть два изображения, как радиокнопку.

Я проверил, не задал ли кто-либо ранее этот вопрос и ничего не нашел, извините, если на него уже был дан ответ.

Надеюсь, я объяснил это четко, опять жаль, если я этого не сделал. Это в значительной степени мое первое размещение здесь :)

+0

Вы пытаетесь использовать кнопки вместо радиокнопку правых ? – HsRaja

+0

Нет, я просто использую ImageViews, надеясь, что смогу подключить onClick к ним? –

ответ

0

Вам нужно продумать логику выбора пользователя. Например:

private ImageView[] ratingsImages; //[0-4] 
private int selectedRating = -1; 

private void selectRatingWithPosition(int position){ 
    //deselect all the ratings (maybe changing image background) 
    selectedRating = position; 
    //change background for selected one of ratingsImages[position] 
} 

Теперь в каждом OnClickListener вашей ImageView вам нужно вызвать этот метод, обеспечивающий правильное положение, может быть что-то похожее на это:

for (final int i = 0; i < ratingsImages.length(); i++){ 
    ratingsImages[i].setOnClickListener(new OnClickListener(){ 
     @Override 
     public void onClick(View v) { 
      selectRatingWithPosition(i); 
     } 
    }); 
} 

Есть еще альтернатива этому, это только отправная точка. Не забывайте, что Android Framework уже обеспечивает базовую реализацию для рейтинговых баров, проверьте здесь, если Вы заинтересованы: https://developer.android.com/reference/android/widget/RatingBar.html и здесь учебник о том, как использовать их https://www.mkyong.com/android/android-rating-bar-example/

+0

Хм, я думаю, я понимаю, что вы пытаетесь сделать, имеет смысл. В принципе, мне просто нужно вызвать метод для каждого из ImageView? –

+0

Да, это главный пункт ^^ – MatPag

+0

Спасибо за помощь: 3 –