Android - unrecognized setResult

0

Hello,

I have a screen with a listing of "Profiles". When I click on one of these profiles it goes to the register where I can update or delete this profile. When I update the profile and return to the list screen the onActivityResult fires normally, however when I delete the profile the onActivityResult does not fire. The difference from one method to the other is that in the "delete" I first create a Dialog for the user to confirm, clicking "Yes" it delete the profile, I make the setResult and then the finish, but as said before, in the onActivityResult of the previous screen.

Follow the implementation:

Screen - ProfilePartActivity

public class ListaPerfilActivity extends AppCompatActivity implements View.OnClickListener {

private Toolbar mToolbar;
private RecyclerView mRecyclerView;
private ArrayList<Perfil_PER> listaPerfil;
private PerfilAdapter perfilAdapter;
private FloatingActionButton fab;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_lista_perfil);

    mToolbar = (Toolbar) findViewById(R.id.tb_main);

    atualizarLista();

    fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(this);
}

private static final int ACT_CADASTRO = 1;

@Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.fab:
            Intent it = new Intent(this, PerfilActivity.class);
            startActivityForResult(it, ACT_CADASTRO);
            break;
    }
}

@Override
protected void onActivityResult(int codigo, int resultado, Intent it) {
    if (codigo == ACT_CADASTRO) {
        if (resultado == RESULT_OK) {
            atualizarLista();
        }
    }
}

public void atualizarLista() {
    RepositorioPerfilScript repositorioPerfilScript = new RepositorioPerfilScript(this);
    listaPerfil = repositorioPerfilScript.listarPerfis();

    perfilAdapter = new PerfilAdapter(this, listaPerfil);

    mRecyclerView = (RecyclerView) findViewById(R.id.rv_list);
    mRecyclerView.setAdapter(perfilAdapter);
    mRecyclerView.setItemAnimator(new DefaultItemAnimator());
    mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
    mRecyclerView.setHasFixedSize(true);
}}

Screen - ProfileActivity

public class PerfilActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener, View.OnClickListener {
ArrayList<Icones> listaIcones;

private EditText Nome;
private EditText Jogador;
private EditText Cronica;
private EditText Natureza;
private EditText Comportamento;
private EditText Cla;
private EditText Geracao;
private EditText Refugio;
private EditText Conceito;
ImageView imageView;
int selecionado;

Spinner spinner;

private long codigo;
private boolean inicio;

private MaterialDialog materialDialog;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_perfil);

    inicio = false;

    FloatingActionMenu fab = (FloatingActionMenu) findViewById(R.id.fab);
    fab.showMenuButton(true);
    fab.setClosedOnTouchOutside(true);

    FloatingActionButton fab1 = (FloatingActionButton) findViewById(R.id.fab1);
    FloatingActionButton fab2 = (FloatingActionButton) findViewById(R.id.fab2);

    fab1.setOnClickListener(this);
    fab2.setOnClickListener(this);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    listaIcones = new ArrayList<>();
    listaIcones.add(new Icones(R.drawable.icon_01));
    listaIcones.add(new Icones(R.drawable.icon_02));
    listaIcones.add(new Icones(R.drawable.icon_03));
    listaIcones.add(new Icones(R.drawable.icon_04));
    listaIcones.add(new Icones(R.drawable.icon_05));
    listaIcones.add(new Icones(R.drawable.icon_06));
    listaIcones.add(new Icones(R.drawable.icon_07));
    listaIcones.add(new Icones(R.drawable.icon_08));
    listaIcones.add(new Icones(R.drawable.icon_09));
    listaIcones.add(new Icones(R.drawable.icon_10));

    spinner = (Spinner) findViewById(R.id.spImage);
    SpinnerIconePerfilAdapter spinnerIconePerfilAdapter = new SpinnerIconePerfilAdapter(this, R.layout.spinner_icone_perfil, listaIcones);
    spinner.setAdapter(spinnerIconePerfilAdapter);
    spinner.setOnItemSelectedListener(this);

    ValidateUtil vu = new ValidateUtil();

    Nome = (EditText) findViewById(R.id.edNome);
    Jogador = (EditText) findViewById(R.id.edJogador);
    Cronica = (EditText) findViewById(R.id.edCronica);
    Natureza = (EditText) findViewById(R.id.edNatureza);
    Comportamento = (EditText) findViewById(R.id.edComportamento);
    Cla = (EditText) findViewById(R.id.edCla);
    Geracao = (EditText) findViewById(R.id.edGeracao);
    Refugio = (EditText) findViewById(R.id.edRefugio);
    Conceito = (EditText) findViewById(R.id.edConceito);

    Nome.addTextChangedListener(vu);
    Jogador.addTextChangedListener(vu);
    Cronica.addTextChangedListener(vu);
    Natureza.addTextChangedListener(vu);
    Comportamento.addTextChangedListener(vu);
    Cla.addTextChangedListener(vu);

    imageView = (ImageView) findViewById(R.id.imageView);

    Intent it = getIntent();
    if (it != null) {
        inicio = true;
        Bundle params = it.getExtras();
        if (params != null) {
            codigo = params.getLong("codigo_perfil");
            String msg = "Codigo: " + codigo;
            Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
            preencheCampos();
        }
    }
}

@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
    //spinner.setIn
    if (!inicio) {
        imageView.setImageResource(listaIcones.get(position).getImageId());
        selecionado = position;
    }
    inicio = false;
}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}

@Override
public void onClick(View v) {
    String aux = "";

    switch( v.getId() ){
        case R.id.fab1:
            salvarPerfil();
            //TODO: Deve encaminhar para ficha
            break;
        case R.id.fab2:
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("Apagar Perfil");
            builder.setMessage("Deseja cancelar o perfil?");
            builder.setCancelable(true);
            builder.setPositiveButton("Sim", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    apagarPerfil();
                }
            });

            builder.setNegativeButton("Não", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                }
            });
            AlertDialog dialog = builder.create();
            dialog.show();
            break;
    }

}

private void salvarPerfil() {
    Perfil_PER perfil;
    RepositorioPerfilScript repositorioPerfilScript = new RepositorioPerfilScript(this);

    if (codigo == 0) {
        perfil = new Perfil_PER();

        perfil.setPER_NOME(((EditText) findViewById(R.id.edNome)).getText().toString());
        perfil.setPER_JOGADOR(((EditText) findViewById(R.id.edJogador)).getText().toString());
        perfil.setPER_CRONICA(((EditText) findViewById(R.id.edCronica)).getText().toString());
        perfil.setPER_NATUREZA(((EditText) findViewById(R.id.edNatureza)).getText().toString());
        perfil.setPER_COMPORTAMENTO(((EditText) findViewById(R.id.edComportamento)).getText().toString());
        perfil.setPER_CLA(((EditText) findViewById(R.id.edCla)).getText().toString());
        perfil.setPER_GERACAO(((EditText) findViewById(R.id.edGeracao)).getText().toString());
        perfil.setPER_REFUGIO(((EditText) findViewById(R.id.edRefugio)).getText().toString());
        perfil.setPER_CONCEITO(((EditText) findViewById(R.id.edConceito)).getText().toString());
        perfil.setPER_DATA_CADASTRO(Calendar.getInstance().getTime());

        perfil.setPER_PHOTO(listaIcones.get(selecionado).getImageId());
    } else {
        perfil = repositorioPerfilScript.buscarPerfil(codigo);
    }

    if (validateFields(perfil)) {
        repositorioPerfilScript.salvar(perfil);
        setResult(RESULT_OK);
        finish();
    }
}

private void apagarPerfil() {
    RepositorioPerfilScript repositorioPerfilScript = new RepositorioPerfilScript(this);
    repositorioPerfilScript.deletar(codigo);

    setResult(RESULT_OK);
    finish();

}

private boolean validateFields(Perfil_PER perfil) {
    if (TextUtils.isEmpty(perfil.getPER_NOME())) {
        Nome.requestFocus();
        Nome.setError("Nome é obrigatório!");
        //Nome.setError(resources.getString(R.string.login_user_required)); - Precisa criar no arquivo de Strings
        return false;
    } else if (!(perfil.getPER_NOME().length() > 3)) {
        Nome.requestFocus();
        Nome.setError("Nome deve ter mais que 3 letras!");
        //Nome.setError(resources.getString(R.string.login_user_required)); - Precisa criar no arquivo de Strings
        return false;
    } else if (TextUtils.isEmpty(perfil.getPER_JOGADOR())) {
        Jogador.requestFocus();
        Jogador.setError("Jogador é obrigatório!");
        //Jogador.setError(resources.getString(R.string.login_user_required)); - Precisa criar no arquivo de Strings
        return false;
    } else if (!(perfil.getPER_JOGADOR().length() > 3)) {
        Jogador.requestFocus();
        Jogador.setError("Jogador deve ter mais que 3 letras!");
        //Jogador.setError(resources.getString(R.string.login_user_required)); - Precisa criar no arquivo de Strings
        return false;
    } else if (TextUtils.isEmpty(perfil.getPER_CRONICA())) {
        Cronica.requestFocus();
        Cronica.setError("Crônica é obrigatório!");
        //Jogador.setError(resources.getString(R.string.login_user_required)); - Precisa criar no arquivo de Strings
        return false;
    } else if (!(perfil.getPER_CRONICA().length() > 3)) {
        Cronica.requestFocus();
        Cronica.setError("Crônica deve ter mais que 3 letras!");
        //Jogador.setError(resources.getString(R.string.login_user_required)); - Precisa criar no arquivo de Strings
        return false;
    } else if (TextUtils.isEmpty(perfil.getPER_NATUREZA())) {
        Natureza.requestFocus();
        Natureza.setError("Natureza é obrigatório!");
        //Jogador.setError(resources.getString(R.string.login_user_required)); - Precisa criar no arquivo de Strings
        return false;
    } else if (!(perfil.getPER_NATUREZA().length() > 3)) {
        Natureza.requestFocus();
        Natureza.setError("Natureza deve ter mais que 3 letras!");
        //Jogador.setError(resources.getString(R.string.login_user_required)); - Precisa criar no arquivo de Strings
        return false;
    } else if (TextUtils.isEmpty(perfil.getPER_COMPORTAMENTO())) {
        Comportamento.requestFocus();
        Comportamento.setError("Comportamento é obrigatório!");
        //Jogador.setError(resources.getString(R.string.login_user_required)); - Precisa criar no arquivo de Strings
        return false;
    } else if (!(perfil.getPER_COMPORTAMENTO().length() > 3)) {
        Comportamento.requestFocus();
        Comportamento.setError("Comportamento deve ter mais que 3 letras!");
        //Jogador.setError(resources.getString(R.string.login_user_required)); - Precisa criar no arquivo de Strings
        return false;
    } else if (TextUtils.isEmpty(perfil.getPER_CLA())) {
        Cla.requestFocus();
        Cla.setError("Clã é obrigatório!");
        //Jogador.setError(resources.getString(R.string.login_user_required)); - Precisa criar no arquivo de Strings
        return false;
    } else if (!(perfil.getPER_CLA().length() > 3)) {
        Cla.requestFocus();
        Cla.setError("Clã deve ter mais que 3 letras!");
        //Jogador.setError(resources.getString(R.string.login_user_required)); - Precisa criar no arquivo de Strings
        return false;
    } else if (TextUtils.isEmpty(perfil.getPER_GERACAO())) {
        Geracao.requestFocus();
        Geracao.setError("Geração é obrigatório!");
        //Jogador.setError(resources.getString(R.string.login_user_required)); - Precisa criar no arquivo de Strings
        return false;
    } else if (!(perfil.getPER_GERACAO().length() > 3)) {
        Geracao.requestFocus();
        Geracao.setError("Geração deve ter mais que 3 letras!");
        //Jogador.setError(resources.getString(R.string.login_user_required)); - Precisa criar no arquivo de Strings
        return false;
    }

    return true;
}

private void preencheCampos() {
    RepositorioPerfilScript repositorioPerfilScript = new RepositorioPerfilScript(this);
    Perfil_PER perfil = repositorioPerfilScript.buscarPerfil(codigo);

    if (perfil != null) {
        //Nome
        Nome.setText(perfil.getPER_NOME());
        //Jogador
        Jogador.setText(perfil.getPER_JOGADOR());
        //Cronica
        Cronica.setText(perfil.getPER_CRONICA());
        //Natureza
        Natureza.setText(perfil.getPER_NATUREZA());
        //Comportamento
        Comportamento.setText(perfil.getPER_COMPORTAMENTO());
        //Cla
        Cla.setText(perfil.getPER_CLA());
        //Geracao
        Geracao.setText(perfil.getPER_GERACAO());
        //Refugio
        Refugio.setText(perfil.getPER_REFUGIO());
        //Conceito
        Conceito.setText(perfil.getPER_CONCEITO());
        //Photo -  imageView.setImageResource(listaIcones.get(position).getImageId());
        imageView.setImageResource(perfil.getPER_PHOTO());
    }

}}

Would anyone know how to fix this problem?

    
asked by anonymous 08.06.2016 / 14:32

0 answers