Olá boa noite programadores mobile, eu sou um iniciante nessa vida de programação e estou criando um aplicação de lista de chamada para uso próprio.
Bem é o seguinte. até agora já conseguir fazer o cadastro de pessoas com um botão adicionar, quando clico no botão sobe um AlertDialog para o usuário inserir o nome do aluno e logo em seguida é criado uma checkbox com o nome mencionado.
APP(Funcionando)
CODIGO FONTE JAVA MainActivity
package br.unisantos.iampresent;
import android.content.Context;
import android.content.DialogInterface;
import android.content.SharedPreferences;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private Button add;
private Button resultado;
private LinearLayout container;
private Button ok;
private static final String ARQUIVO_PREFERENCIA = "ArquivoPreferencia";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Recuperando
container = (LinearLayout) findViewById(R.id.lineCheckbox);
add = (Button) findViewById(R.id.btnAdd);
resultado = (Button) findViewById(R.id.btnResultado);
ok = (Button) findViewById(R.id.btnOk);
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
exibirMensagemEdt("Novo Aluno(New Student)", "Adicionar novo aluno, click ok", container);
}
});
}
public void exibirMensagemEdt(String titulo, String texto, final LinearLayout frameLayout){
AlertDialog.Builder mensagem = new AlertDialog.Builder(MainActivity.this);
mensagem.setTitle(titulo);
mensagem.setMessage(texto);
// DECLARACAO DO EDITTEXT
final EditText input = new EditText(this);
mensagem.setView(input);
mensagem.setNeutralButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
if (input.getText().toString().isEmpty()) {
Toast.makeText(getApplicationContext(), "Texto em Branco",
Toast.LENGTH_SHORT).show();
} else {
criarNovoAluno(frameLayout, input.getText().toString());
Toast.makeText(getApplicationContext(), input.getText().toString().trim(),
Toast.LENGTH_SHORT).show();
}
}
});
mensagem.show();
// FORÇA O TECLADO APARECER AO ABRIR O ALERT
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
}
public void criarNovoAluno(LinearLayout frameLayout, String texto){
List <Aluno> listaAlunos;
listaAlunos = new ArrayList<Aluno>();
Aluno newAluno = new Aluno();
newAluno.nome = "Jose";
listaAlunos.add(newAluno);
//Criando um botão passando o contexto
CheckBox aluno = new CheckBox(this);
aluno.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
aluno.setText(texto);
aluno.setTextSize(30);
//Espaçamento
aluno.setPadding(5, 5, 5, 5);
//Log.i("COD ID", aluno.getId( ));
//Adicionando o botão na tela
frameLayout.addView(aluno);
}
}
Bom minha dúvida é o seguinte,
1° como irei salvar esses checkbox (Para quando eu fecha o aplicativo e abrir novamente não precisar add todo mundo)
2 ° Como irei recuperar o id do checkbox(Os checkbox estou criando via código java, dentro de um container de linerLayout)
3° Como é uma chamada gostaria que fosse acrescentado 1 presença para cada “CheckBox” Selecionado e gostaria de recuperar em outra activity que será puxada pelo botão Resultado.
Desde já agradeço as resposta. meu ultimo pedido é quem estiver tempo, e puder me ajudar a acabar essa aplicação pode está me chamando no Skype: anjunior98@outlook.com (Vou deixar open source).
Obrigado.
Antonio