Liste listem için özel bir arrayadapter oluşturdum. Bir oyuncu ismi ve skoru var, ayrıca hücrede bir düğme var, o buton tıklandığında görünmek için bir açılır pencere istiyorum, Burada oyuncu oyuncu puanı ekleyebileceğiniz yer. Bu açılır pencerede 6 düğmeli "+1", "+2" "+10" ..etc ve bitmiş bir düğme var. Bitti düğmesine tıklandığında skor güncellenir.Liste Görünümünde Açılır Penceresi Açılır Android
Benim customArraryAdapter sınıfımdaki add button click olayıyla ilgileniyorum, bu yüzden pop-up'ı da burada oluşturmalıyım. Bunu başarıya ulaşmadan araştırdım ve denedim. Şu ana kadar çalıştığım şey
: Ben
View = convertView
ve problem ben bir halk yaratmayı parametre olarak geçirmek için ne kadar emin değilim bir
viewHolder = holder
var. Aşağıdaki kod myCustomArrayAdapter sınıfıdır. Ayrıca, pop-up'ların dokunma olaylarını ele alamayacağını da okudum, ancak bazıları bunu yapabileceğini söylüyor. Pop-up'ım çok fazla butona sahip olduğundan belki bu harika bir çözüm olabilir.
Bu
@Override içindedir kamu Görünüm GetView (nihai int pozisyonu, Görünüm convertView, ViewGroup ebeveyn) Yöntem CustomArrayAdapter Sınıf//Handle add button click
holder.add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
addScores(convertView);
//list gets updated
notifyDataSetChanged();
}
});
benziyor
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);
}
Bağlamı bağdaştırıcıdan geçirebilirsiniz. Buradan LayoutInflator.from (context) yöntemini kullanarak LayoutInflator nesnesini oluşturabilirsiniz. – Krish
Kod ile bir çözüm sağlayabilir misiniz? Şu anda Bağlamı geçmeyi denedim ama hala getSystemService üzerinde kırmızı metinler alıyorum ve açılır pencerede dokunma/tıklama olayını işlemek konusunda doğru mu? –
Bu bağlantıyı kontrol edin https://androidresearch.wordpress.com/2012/05/06/how-to-create-popups-in-android/ – Krish