Pessoal, fiz aqui um listview que recebe os dados de um ws, e estou tentnado adaptar u m checkbox nele
Mais nos primeiros testes que fiz ja achei estranho o comportamento destes checkbox’s. Por exemplo se eu marco o primeiro checkbox e vou rolando a tela percebi que tem outros itens marcados também sem eu ter chekado estes outros. Então peço ajuda dos colegas para saber o que esta acontecendo?
Obrigado.
Isso depende um pouco de como implementar…
Você quer que o checkbox seja marcado apena quando clicar exatamente nele ou em qlqr lugar do item na listview ?
Você precisa adicionar uma tag ao checkbox com um objeto para controle se esta checado ou não, ou caso, estou utilizando o objto que é utilizado para criar a View da posição 'position’
Esse código é caso queria que seja checado apenas se tocar exatamente no checkbox
[code]@Override
public View getView(int position, View view, ViewGroup viewGroup) {
LayoutInflater factory = LayoutInflater.from(MyApp.getAppContext());
View itemView = factory.inflate(R.layout.listItem, null);
MyObject myObj = (MyObject ) getItem(position); //getItem é metodo obrigatório do BaseAdapter
CheckBox checkBox = (CheckBox) itemView.findViewById(R.id.checkbox);
if(myObj.toggle){
checkBox.setChecked(true);
}else{
checkBox.setChecked(false);
}
checkBox.setTag(myObj);
checkBox.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
{
MyObject item = (MyObject) buttonView.getTag();
if (isChecked) {
item.toggle = true;
} else {
item.toggle = false;
}
}
});
}[/code]
Obs. fiz o código na mão agora, pode ser que tenha algum errinho, to sem eclipse no momento
Sou meio ruim para explicar, então, qlqr dúvida so postar.
Sobre ele estar marcado:
O ListView implementa com sucesso o recycle de views, então se voce está utilizando o recycleView que vem como parametro ele vai continuar com o estado de marcado que estava na view anterior.
Então fabriciov, obrigado por responder
Não implementei nenhum codigo ainda no activity, apenas estou fazendo os testes iniciais e… Como disse estou marcando o primeiro por exemplo e estão sendo marcado oustros na lista sem eu ter marcado.
Meu xml é este
[code]<?xml version="1.0" encoding="utf-8"?>
<TextView
android:id="@+id/nomeservicogeral"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:textColor="#00008B"
android:textSize="22sp"
android:textStyle="bold" />
<RelativeLayout
android:id="@+id/InnerRelativeLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<CheckBox
android:id="@+id/checkBox1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:focusable="false"
android:focusableInTouchMode="false"
android:textColor="#8B0000" />
<TextView
android:id="@+id/codigoservicogeral"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/checkBox1"
android:layout_alignBottom="@+id/checkBox1"
android:layout_toRightOf="@+id/checkBox1"
android:textColor="#8B0000"
android:textSize="15sp" />
</RelativeLayout>
<TextView
android:id="@+id/familiaservicogeral"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#8B0000"
android:textSize="15sp" />
<TextView
android:id="@+id/valorservicogeral"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#8B0000"
android:textSize="15sp" />
[/code]
Desculpe…Não entendi sua resposta Marky.Vasconcelos
[quote]Sobre ele estar marcado:
O ListView implementa com sucesso o recycle de views, então se voce está utilizando o recycleView que vem como parametro ele vai continuar com o estado de marcado que estava na view anterior.[/quote]
Obrigado.
[quote=Marky.Vasconcelos]Poste seu adapter.[/quote]Obrigado Marky.Vasconcelos, mais eu mudei aqui, não vou mais usar CheckBox…Valeu
Mais no mesmo problema a duvida ficou sendo outra cfe o link
http://www.guj.com.br/java/300118-trocar-a-cor-de-um-string
cara eu tive mto problema com checkbox em listview ai passe a usar o CheckedTextView funfo liso.