Bir onay kutusunun etkinleştirilmesi veya devre dışı bırakılması durumunda bir olayın alınmasının ve gönderilmesinin doğru yolu nedir? C# 'da kolayca çift tıklayabilir ve tüm kod benim için yapılır. ama android'de biraz daha belirsiz görünüyor. Dokunma olay işleyicilerini kullanmayı düşündüm ancak kullanıcının klavyesi varsa, dokunmadığı için değişikliği algılamayacaktır. Ben android onay kutusu durum değişikliği için bir yerel olayı olması gerektiğini.Android'de bir olay nasıl alınır onay kutusunu işaretleyin?
37
A
cevap
118
CheckBox repeatChkBx = (CheckBox) findViewById(R.id.repeat_checkbox);
repeatChkBx.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
if (isChecked)
{
// perform logic
}
}
});
4
CheckBox (sonunda) Görünüm uzanır olduğundan, (ListView güncellemeleri aksine) CheckBox gerçekte kullanıcı tarafından dokunulduğunda algılamak için bir standart OnClickListener kullanabilirsiniz:
CheckBox repeatChkBx = (CheckBox) findViewById(R.id.repeat_checkbox);
repeatChkBx.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (((CheckBox)v).isChecked()) {
// perform logic
}
}
});
0
bu deneyin Bu doğru cevap iken
CheckBox checkbox=(CheckBox)findViewById(R.id.checkbox);
checkbox.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if (checkbox.isChecked())
{
//Perform action when you touch on checkbox and it change to selected state
}
else
{
//Perform action when you touch on checkbox and it change to unselected state
}
}
});
, ben onay kutusu, bir ListView öğesi içindedir ve onCheckedChange her zaman geçmiş kaydırdığı çağrılan zaman en iyi yaklaşım ne olacağını merak ediyorum. Kullanıcı tarafından başlatıldığında ve liste görünümü güncellemesinde farklılaşmanın herhangi bir yolu var mı? – rmooney
^@Rmooney'ın bu yorumu ALTIN! RecyclerView adaptörüyle ilgili bir sorun yaşadım ve her kaydırdığımda, bir kereden fazla çıldırmaya başladım! Teşekkürler! –
Bağdaştırıcıda, belirli bir tutucu için onay kutusunu ayarladığınızda. Önce dinleyiciyi kaldırın, değeri değiştirin ve dinleyiciyi okuyun. Onay kutuları kendileri dinleyiciyi çağırmaya zorlar, bu nedenle değeri tetiklemeden ayarlamak için onu kaldırmanız gerekir. – Tatarize