我在使用RadioGroup實現列表視圖時遇到了一些問題。 當我選擇我的RadioGroup一些CheckButton,並在我滾動列表視圖後,我的ChechButton未選中。我試圖修復它,但我不知道該怎麼做。 我知道我需要保存我的checkbutton的狀態,並在創建listview時加載它。但我不知道該怎麼做。當我有一個列表視圖時保存我的RadioGroup的狀態
有人可以幫我用我的代碼嗎?
這裏有XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:padding="8dp"
android:id="@+id/teste"
android:background="@drawable/borderframe"
tools:context="com.example.gerdaumanagement.gerdaumanagement.layoutListaAMC">
<TextView
android:id="@+id/potencial"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:paddingRight="3dp"
android:paddingTop="3dp"
android:text="Potencial"
android:textAllCaps="true"
android:textSize="15sp" />
<TextView
android:id="@+id/potencialLetra"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="25dp"
android:text="A"
android:textAllCaps="true"
android:textColor="@color/azulgerdau"
android:textSize="40sp"
android:layout_below="@+id/potencial"
android:layout_alignParentStart="true"
android:layout_toStartOf="@+id/questao" />
<TextView
android:id="@+id/questao"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toEndOf="@+id/potencial"
android:text="As máquinas e equipamentos possuem selo de liberação por um líder Gerdau e está dentro do prazo de validade?"
android:textAlignment="center"
android:textSize="16sp" />
<TextView
android:id="@+id/titulo"
android:textAlignment="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Condiçao Fisica"
android:textSize="15sp"
android:gravity="center"
android:layout_toStartOf="@+id/questao"
android:layout_below="@+id/potencialLetra" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/questao"
android:layout_alignParentEnd="true"
android:gravity="center_horizontal"
android:paddingTop="5dp"
android:layout_alignStart="@+id/questao">
<RadioGroup
android:id="@+id/radioGroupAmc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/sim"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sim"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<RadioButton
android:id="@+id/nao"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/questao"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_toEndOf="@+id/sim"
android:text="Não" />
<RadioButton
android:id="@+id/na"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NA"
android:layout_below="@+id/questao"
android:layout_toEndOf="@+id/nao"
/>
</RadioGroup>
</LinearLayout>
</RelativeLayout>
在這裏,我們有apater:
class AdapterAmcPersonalizada extends BaseAdapter {
private final List<AvaliacaoMensal> mensal;
private final Activity act;
public AdapterAmcPersonalizada(List<AvaliacaoMensal> mensal, Activity act) {
this.mensal = mensal;
this.act = act;
}
@Override
public int getCount() {
return mensal.size();
}
@Override
public Object getItem(int position) {
return mensal.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = act.getLayoutInflater().inflate(R.layout.activity_layout_lista_amc, parent, false);
AvaliacaoMensal mensalAmc = mensal.get(position);
//pegando as referências das Views
TextView potencial = (TextView) view.findViewById(R.id.potencialLetra);
TextView questao = (TextView) view.findViewById(R.id.questao);
TextView titulo = (TextView) view.findViewById(R.id.titulo);
//populando as Views
potencial.setText(String.valueOf(mensalAmc.getPotencial()));
questao.setText(String.valueOf(mensalAmc.getQuestao()));
titulo.setText(String.valueOf(mensalAmc.getTitulo()));
RadioGroup radioGroupAmc = (RadioGroup) view.findViewById(R.id.radioGroupAmc);
radioGroupAmc.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch(checkedId) {
case R.id.sim:
// trata radioValor1
break;
case R.id.nao:
// trata radioValor2
break;
case R.id.na:
// trata radioValor3
break;
}
}
});
return view;
}
}
在這裏,我有我的名單蒙山數據:
public List<AvaliacaoMensal> todosMensal() {
List<AvaliacaoMensal> dados = new ArrayList<AvaliacaoMensal>();
dados.add(new AvaliacaoMensal("As máquinas e equipamentos possuem selo de liberação por um líder Gerdau e está dentro do prazo de validade?", 'A', "Condição Fisica", false, false,false));
dados.add(new AvaliacaoMensal("Atividades se encontram sinalizadas ou isoladas?", 'B' , "Condição Fisica",false, false,false));
dados.add(new AvaliacaoMensal("Todos os colaboradores estão usando os EPI´s básicos, específicos e em boas condições? Os EPI's são adequados aos riscos das atividades? Quando aplicável são realizados pré-uso dos mesmos?", 'B', "Condição Fisica",false, false,false));
dados.add(new AvaliacaoMensal("As plataformas, andaimes, enlonadores, estruturas de guarda corpo e corrimão se encontram em boas condições?", 'A', "Condição Fisica",false, false,false));
dados.add(new AvaliacaoMensal("Máquinas e equipamentos que possuem partes rotativas estão adequadas conforme NR 12?", 'A', "Condição Fisica",false, false,false));
dados.add(new AvaliacaoMensal("Existe local adequado para refeição e sanitários suficientes conforme NR 31?", 'A', "Condição Fisica",false, false,false));
dados.add(new AvaliacaoMensal("A contratada faz o uso de bloqueio de energia quando aplicavel?", 'A', "Condição Fisica",false, false,false));
dados.add(new AvaliacaoMensal("Todas as maquinas devem possuir proteção contra tombamento e cinto de segurança", 'A', "Condição Fisica",false, false,false));
dados.add(new AvaliacaoMensal("A frente de trabalho possui caixa de primeiros socorros?", 'C', "Condição Fisica",false, false,false));
dados.add(new AvaliacaoMensal("Está sendo cumprida a proibição de utilizar adornos como: brincos, pulseiras, relógios, cordões, anéis, etc?", 'C', "Condição Fisica",false, false,false));
dados.add(new AvaliacaoMensal("As proteções contra quedas, seja para acesso ou execução das tarefas, estão instaladas e usadas de acordo c/ os procedimentos de segurança e conforme projeto elaborado por profissional habilitado ?", 'A', "Condição Fisica",false, false,false));
dados.add(new AvaliacaoMensal("Os veículos operacionais e transporte de pessoas passaram pela vistoria mensal?", 'A', "Condição Fisica",false, false,false));
dados.add(new AvaliacaoMensal("Todas atividades realizadas possuem padrão, IO ou APR?", 'A', "Sistema",false, false,false));
dados.add(new AvaliacaoMensal("A APR é de conhecimento, está assinada por todos os executantes da tarefa e disponível na frente de serviço? Toda liderança da contratada foi treinada nos padrões de APR e PT?", 'A', "Sistema",false, false,false));
dados.add(new AvaliacaoMensal("As IPU's estão sendo preenchidas corretamente para máquinas, equipamentos, veículos e ferramentas manuais?", 'A', "Sistema",false, false,false));
dados.add(new AvaliacaoMensal("Colaboradores que executam atividades críticas estão portando crachá de autorização para Riscos Críticos?", 'A', "Sistema",false, false,false));
dados.add(new AvaliacaoMensal("Operadores e motoristas estão portanto CNH?", 'C', "Sistema",false, false,false));
dados.add(new AvaliacaoMensal("A empresa tem uma média de 2 relatos por colaborador?", 'C', "Sistema",false, false,false));
dados.add(new AvaliacaoMensal("A empresa está emitindo RTR?", 'C', "Sistema",false, false,false));
dados.add(new AvaliacaoMensal("Os relatos estão sendo tratados em DDS?", 'C', "Sistema",false, false,false));
dados.add(new AvaliacaoMensal("A empresa está dando fedback dos relatos e RTR para colaboradores?", 'C', "Sistema",false, false,false));
dados.add(new AvaliacaoMensal("Está sendo realizado aferição de pressão arterial para colaboradores que realizam atividades críticas?", 'C', "Sistema",false, false,false));
dados.add(new AvaliacaoMensal("Possui alguma ação em atraso de acidente?", 'A', "Sistema",false, false,false));
dados.add(new AvaliacaoMensal("Regras Gerais e específicas estão sendo cumpridas?", 'B', "Sistema",false, false,false));
dados.add(new AvaliacaoMensal("Possui novos colaborares na area? Se sim, possuem padrinhos treinando em ordem de serviço, IO, padrão e etc?", 'A', "Sistema",false, false,false));
dados.add(new AvaliacaoMensal("A contratada deve possuir a coleta seletiva implantada e recipientes identificados à disposição dos colaboradores", 'B', "Meio Ambiente",false, false,false));
dados.add(new AvaliacaoMensal("A coleta seletiva deve ser utilizada corretamente, com a destinação correta nos recipientes", 'C', "Meio Ambiente",false, false,false));
dados.add(new AvaliacaoMensal("As embalagens de produtos quimicos/agrotóxicos devem ser devidamente armazenadas e devolvidas ao fabricante", 'A', "Meio Ambiente",false, false,false));
dados.add(new AvaliacaoMensal("A contratada destina corretamente o óleo lubrificante usado e toma medidas adicionais durante o abastecimento de maquinas/motosserra", 'B', "Meio Ambiente",false, false,false));
dados.add(new AvaliacaoMensal("As instalações devem ser localizadas com geografia favorável para obtenção de água, fora das APP (áreas de preservação permanente), com distância mínima a 100 metros dos rios e das nascentes d’água.", 'A', "Meio Ambiente",false, false,false));
dados.add(new AvaliacaoMensal("Os produtos Químicos e Combustiveis estão armazenados de forma correta?", 'B', "Produto Quimíco e Combustiveis",false, false,false));
dados.add(new AvaliacaoMensal("Deve ter FISQP de todos os produtos armazenados, com atendimento as remendações e regras de armazenamento.", 'B', "Produto Quimíco e Combustiveis",false, false,false));
dados.add(new AvaliacaoMensal("Os locais de armazenamento possuem placas de acesso restrito e cadeado?", 'B', "Produto Quimíco e Combustiveis",false, false,false));
dados.add(new AvaliacaoMensal("As embalagens vazias de combustíveis ou lubrificantes devem permanecer neste local até ser retiradas da fazenda.", 'B', "Produto Quimíco e Combustiveis",false, false,false));
dados.add(new AvaliacaoMensal("Os produtos quimicos e inflamaveis são acima de 37°? Se não, existe autorização da area de SSMA da unidade?", 'A', "Produto Quimíco e Combustiveis",false, false,false));
dados.add(new AvaliacaoMensal("O deposito de produtos químicos posuem sinalização e proteção contra incêndios?", 'A', "Produto Quimíco e Combustiveis",false, false,false));
dados.add(new AvaliacaoMensal("Os serviços com produtos químicos e inflamáveis, possui a APR e Permissão de Trabalho? ", 'A', "Produto Quimíco e Combustiveis",false, false,false));
// Continuação do código
return dados;
}
,在這裏我有我的AvaliacaoMensal:
class AvaliacaoMensal {
private String questao;
private char potencial;
private String titulo;
private boolean sim, nao, na;
感謝您的回答,但我無法在我的'AvaliacaoMensal'中添加'boolean [] radioButtonValues = new boolean [3];'因爲如果我這樣做了,我需要更改我的列出數據。我把這些放到我的問題中。 –
我不明白爲什麼你不能添加這個,但是你可以在baseadapter中創建另一個與你的對象大小相同的數組列表,並將你的單選按鈕值存儲到它中。但這是一個不好的做法,可能會發生一些問題 –
isChecked它不起作用。說不能解決方法isChecked。 –