Я создал пользовательский массив для моего списка. У него есть имя игрока и оценка, у меня также есть кнопка добавления на ячейку, когда эта кнопка нажата. Я хочу, чтобы всплывающий экран появлялся. Здесь пользователь может добавить счет игрока. Это всплывающее окно имеет 6 кнопок «+1», «+2» «+10» ..etc и кнопку «Готово». Когда нажата кнопка «Готово», счет будет обновлен.Всплывающее окно на ListView Android
Я обрабатываю событие нажатия кнопки добавления в свой класс customArraryAdapter, поэтому мне также нужно создать всплывающее окно. Я искал и пытался сделать это без успеха.
То, что я пытался до сих пор: У меня есть View = convertView
и viewHolder = holder
Проблема заключается в том, что я не уверен, что необходимо передать в качестве параметра для создания всплывающего окна. Ниже приведен код класса myCustomArrayAdapter. Я также читал всплывающие подсказки, которые не могут касаться событий, но некоторые говорят, что это возможно. Поскольку у моего popup есть много кнопок, возможно, это может быть отличным решением.
Это в @Override общественности Посмотреть GetView (конечное положение INT, Вид convertView, ViewGroup родителя) Метод в CustomArrayAdapter Класс
//Handle add button click
holder.add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
addScores(convertView);
//list gets updated
notifyDataSetChanged();
}
});
Мой метод addScores выглядит следующим образом
private void addScores(View v){
PopupWindow pw;
LayoutInflater inflater = (LayoutInflater)v.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.weight_popup, (ViewGroup)v.findViewById(R.id.linlay_weight_popup));
pw = new PopupWindow(layout, ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);
pw.setBackgroundDrawable(new BitmapDrawable());
pw.setOutsideTouchable(true);
pw.showAsDropDown(btnSelectWeight);
}
Вы можете передать контекст из адаптера. Оттуда вы можете создать объект LayoutInflator с помощью метода LayoutInflator.from (context). – Krish
Можете ли вы предоставить решение с кодом? Я пробовал передать Context прямо сейчас, но я все еще получаю красный текст на getSystemService, и это правда, что не удается обработать событие touch/click во всплывающем окне? –
Проверьте эту ссылку https://androidresearch.wordpress.com/2012/05/06/how-to-create-popups-in-android/ – Krish