ola, gostaria de saber porque que quando arrasto a tela para baixo, o swipe refresh aparece, muda de cor, gira. Mas, não atualiza a lista.
no projeto criei um fragment para receber a resposta do json. Porém, para poder atualizar a lista inserir esse swiperefresh para poder atualizar. porém, ele faz o que eu disse mas não atualiza.
package br.com.cadastroDeAluno;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SwipeRefreshLayout;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;
import java.util.List;
import br.com.cadastroDeAluno.adapter.MediaDasNotasAdapter;
import br.com.cadastroDeAluno.dao.AlunoDAO;
import br.com.cadastroDeAluno.modelo.MediaDasNotas;
import br.com.cadastroDeAluno.tasks.EnviaAlunosTask;
/**
* A simple {@link Fragment} subclass.
*/
public class ListarMediasFragment extends Fragment implements SwipeRefreshLayout.OnRefreshListener {
private ListView listaDasMediaAlunos;
private View viewMedia;
private SwipeRefreshLayout mSwipeRefreshLayout;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
setHasOptionsMenu(true); //mostra o menu no fragment
viewMedia = inflater.inflate(R.layout.fragment_listar_medias, container, false);
listaDasMediaAlunos = (ListView) viewMedia.findViewById(R.id.lista_mediaDasNotas);
mSwipeRefreshLayout = (SwipeRefreshLayout) viewMedia.findViewById(R.id.swipeContainer);
listaDasMediaAlunos.setEmptyView(viewMedia.findViewById(R.id.list_media_vazia));//caso a lista de media esteja fazia
mSwipeRefreshLayout.setColorSchemeResources(R.color.color_vermelho,
R.color.color_verde,
R.color.color_azul,
R.color.color_laranja);
// Listenerをセット
mSwipeRefreshLayout.setOnRefreshListener(this);
registerForContextMenu(listaDasMediaAlunos);
return viewMedia;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_lista_media, menu);
super.onCreateOptionsMenu(menu, inflater);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_enviar_notas:
new EnviaAlunosTask(getActivity()).execute(); //essa linha mostra a resposta do json
break;
case R.id.menu_baixar_provas:
Intent vaiParaProvas = new Intent(getActivity(), ProvasActivity.class);
startActivity(vaiParaProvas);
break;
case R.id.menu_mapa:
Intent vaiParaMapa = new Intent(getActivity(), MapaActivity.class);
startActivity(vaiParaMapa);
break;
}
return super.onOptionsItemSelected(item);
}
public void carregaMediaAlunos() {
AlunoDAO daoMedia = new AlunoDAO(getActivity());
List<MediaDasNotas> media = daoMedia.buscaMediaAlunos();
daoMedia.close();
//criando um MediaDasNotasAdapter
MediaDasNotasAdapter adapterMedia = new MediaDasNotasAdapter(getActivity(), media);
listaDasMediaAlunos.setAdapter(adapterMedia);
}
@Override
public void onResume() {
super.onResume();
carregaMediaAlunos();
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, final ContextMenu.ContextMenuInfo menuInfo) {
//-- recuperando o aluno clicado --------------
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
final MediaDasNotas mediaDasNotas = (MediaDasNotas) listaDasMediaAlunos.getItemAtPosition(info.position);
// --------------------------------------------
//-- menu item deletar no contexto -----------
MenuItem deletar = menu.add(getString(R.string.deletar_media));
deletar.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
//deletando do aluno
AlunoDAO dao = new AlunoDAO(getActivity());
dao.deletaMedia(mediaDasNotas);
dao.close();
//mostrando mensagem e atualizando a lista
Toast.makeText(getActivity(), getString(R.string.media_deletado_sucesso), Toast.LENGTH_SHORT).show();
carregaMediaAlunos();
return false;
}
});
//-----------------------------------------------------
//@Override
//public void onRequestPermissionResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantTesults) {
//super.onRequestPermissionResult(requestCode, permissions, grantResults);
// if (requestCode == 123) {
// faz a ligacao
// }
//}
}
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mSwipeRefreshLayout.setRefreshing(false);
}
}, 2000);
}
}