j'ai suivi le tuto d'androWiiid sur les ViewPager, celui-ci me permettrait de laisser tomber les listes de fragments et donc d'obtenir un code moins redondant.
Problème, avec les list ça fonctionne et sans bah ça plante...
Voilà le lien du tuto: http://www.siteduzero.com/tutoriel-3-7 [...] s-ecrans.html
Je vous poste les 2 versions:
Code avec list de fragment
Code ViewPager
package rapport.presse.cim;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.*;
public class CIMPresseActivity extends FragmentActivity{
/** Called when the activity is first created. */
private PagerAdapter mPagerAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/**===============================================
Gestion du slide entre page
===============================================**/
/**Création des fragments**/
List fragments = new Vector();
fragments.add(Fragment.instantiate(this,First.class.getName()));
fragments.add(Fragment.instantiate(this,First.class.getName()));
fragments.add(Fragment.instantiate(this,First.class.getName()));
/**Adaptater pour l'affichage des fragments (liste)*/
this.mPagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager(), fragments);
ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager);
/** Affectation de l'adapter au ViewPager**/
pager.setAdapter(this.mPagerAdapter);
}
}
Code Fragment
package rapport.presse.cim;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import rapport.presse.cim.R.id;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
public class First extends Fragment{
private TextView titre;
final String urlView1="http://192.168.1.100/cimPresse.php?donnee=getName&country=all";
final String urlView2="http://192.168.1.100/cimPresse.php?donnee=getName&country=be";
final String urlView3="http://192.168.1.100/cimPresse.php?donnee=getName&country=lu";
public HttpConnexion mHttpConnexion = new HttpConnexion();
public InputStream mInputStream;
//public List<String>[] tabVarList = {mDataAll, mDataQuot, mDataHebd, mDataMens, mDataTrim, mDataAnn};
/**===============================================
Création des list de donnée pour chaque listView
===============================================**/
public List<String> mDataAll = new ArrayList<String>();
public List<String> mDataQuot = new ArrayList<String>();
public List<String> mDataHebd = new ArrayList<String>();
public List<String> mDataMens = new ArrayList<String>();
public List<String> mDataTrim = new ArrayList<String>();
public List<String> mDataAnn = new ArrayList<String>();
/**===============================================
Déclaration des différents adaptateur
===============================================**/
public ArrayAdapter<String> mAdapterAll, mAdapterQuot, mAdapterHebd, mAdapterMens, mAdapterTrim, mAdapterAnn;
/**===============================================
Déclaration des listView
===============================================**/
public ListView mListViewAll, mListViewQuot, mListViewHebd, mListViewMens, mListViewTrim, mListViewAnn;
/**===============================================
Déclaration des bouttons
===============================================**/
public Button mButtonAll, mButtonQuot, mButtonHebd, mButtonMens, mButtonTrim, mButtonAnn;
/**public Button[] tabVarButton = {mButtonAll, mButtonQuot, mButtonHebd, mButtonMens, mButtonTrim, mButtonAnn};
public int[] tabVarPeriode = {R.id.all, R.id.quot, R.id.hebd, R.id.mens, R.id.trim, R.id.ann};**/
/**===================================================================
Méthode permettant de créer une nouvelle instance du fragment
===================================================================**/
/**public static First newInstance(String chaine) {
First fragment = new First();
Bundle args = new Bundle();
args.putString("KEY_STRING", chaine);
fragment.setArguments(args);
return fragment;
}**/
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v= inflater.inflate(R.layout.first, container, false);
/**=======================================================
Appel des fonction asynchrone pour remplir les adaptateurs
=======================================================**/
new AsyncDownloadAll().execute(urlView1, "periode", "allPeriode"); //Ligne changée
new AsyncDownloadQuot().execute(urlView1, "periode", "daily");
new AsyncDownloadHebd().execute(urlView1, "periode", "weekly");
new AsyncDownloadMens().execute(urlView1, "periode", "monthly");
new AsyncDownloadTrim().execute(urlView1, "periode", "quarterly");
new AsyncDownloadAnn().execute(urlView1, "periode", "annual");
/**===============================================
Création des adaptateurs
===============================================**/
mAdapterAll = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataAll);
mAdapterQuot = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataQuot);
mAdapterHebd= new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataHebd);
mAdapterMens= new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataMens);
mAdapterTrim= new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataTrim);
mAdapterAnn= new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataAnn);
/**===============================================
Appel des layouts des boutons
===============================================**/
//récupération des Boutons
mButtonAll = (Button) v.findViewById(R.id.all);
mButtonQuot= (Button) v.findViewById(R.id.quot);
mButtonHebd = (Button)v.findViewById(R.id.hebd);
mButtonMens = (Button)v.findViewById(R.id.mens);
mButtonTrim = (Button)v.findViewById(R.id.trim);
mButtonAnn = (Button)v.findViewById(R.id.ann);
/**for(int i=0; i==tabVarButton.length; i++){
tabVarButton[i] = (Button) v.findViewById(tabVarPeriode[i]);
}**/
/**===============================================
Appel des layouts des listView
===============================================**/
mListViewAll = (ListView) v.findViewById(R.id.ListViewAll);
mListViewQuot = (ListView) v.findViewById(R.id.ListViewQuot);
mListViewHebd = (ListView) v.findViewById(R.id.ListViewHebd);
mListViewMens = (ListView) v.findViewById(R.id.ListViewMens);
mListViewTrim = (ListView) v.findViewById(R.id.ListViewTrim);
mListViewAnn = (ListView) v.findViewById(R.id.ListViewAnn);
/**===============================================
Gestion de l'affichage des listView
===============================================**/
mListViewAll.setVisibility(View.GONE);
mListViewQuot.setVisibility(View.GONE);
mListViewHebd.setVisibility(View.GONE);
mListViewMens.setVisibility(View.GONE);
mListViewTrim.setVisibility(View.GONE);
mListViewAnn.setVisibility(View.GONE);
/**===============================================
On lie les listView à leur adaptateur
===============================================**/
mListViewAll.setAdapter(mAdapterAll);
mListViewQuot.setAdapter(mAdapterQuot);
mListViewHebd.setAdapter(mAdapterHebd);
mListViewMens.setAdapter(mAdapterMens);
mListViewTrim.setAdapter(mAdapterTrim);
mListViewAnn.setAdapter(mAdapterAnn);
/**===============================================
Gestion des cliques pour les boutons
===============================================**/
mButtonAll.setOnClickListener (new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(mListViewAll.isShown()){
mListViewAll.setVisibility(View.GONE);
}
else{
mListViewAll.setVisibility(View.VISIBLE);
}
}
});
mButtonQuot.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(mListViewQuot.isShown()){
mListViewQuot.setVisibility(View.GONE);
}
else{
mListViewQuot.setVisibility(View.VISIBLE);
}
}
});
mButtonHebd.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(mListViewHebd.isShown()){
mListViewHebd.setVisibility(View.GONE);
}
else{
mListViewHebd.setVisibility(View.VISIBLE);
}
}
});
mButtonMens.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(mListViewMens.isShown()){
mListViewMens.setVisibility(View.GONE);
}
else{
mListViewMens.setVisibility(View.VISIBLE);
}
}
});
mButtonTrim.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(mListViewTrim.isShown()){
mListViewTrim.setVisibility(View.GONE);
}
else{
mListViewTrim.setVisibility(View.VISIBLE);
}
}
});
mButtonAnn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(mListViewAnn.isShown()){
mListViewAnn.setVisibility(View.GONE);
}
else{
mListViewAnn.setVisibility(View.VISIBLE);
}
}
});
/**===============================================
Gestion des cliques dans les listView
===============================================**/
mListViewAll.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
String choix = mDataAll.get(position);
Bundle mObjetBundle = new Bundle(); //Permet de passer un paramètre à l'autre activité
mObjetBundle.putString("choix", choix);
Intent t = new Intent(getActivity(), Tableau.class); //permet d'appeler la nouvelle activité
t.putExtras(mObjetBundle);
startActivity(t);
}});
mListViewQuot.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
String choix = mDataQuot.get(position);
Bundle mObjetBundle = new Bundle(); //Permet de passer un paramètre à l'autre activité
mObjetBundle.putString("choix", choix);
Intent t = new Intent(getActivity(), Tableau.class); //permet d'appeler la nouvelle activité
t.putExtras(mObjetBundle);
startActivity(t);
}});
mListViewHebd.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
String choix = mDataHebd.get(position);
Bundle mObjetBundle = new Bundle(); //Permet de passer un paramètre à l'autre activité
mObjetBundle.putString("choix", choix);
Intent t = new Intent(getActivity(), Tableau.class); //permet d'appeler la nouvelle activité
t.putExtras(mObjetBundle);
startActivity(t);
}});
mListViewMens.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
String choix = mDataMens.get(position);
Bundle mObjetBundle = new Bundle(); //Permet de passer un paramètre à l'autre activité
mObjetBundle.putString("choix", choix);
Intent t = new Intent(getActivity(), Tableau.class); //permet d'appeler la nouvelle activité
t.putExtras(mObjetBundle);
startActivity(t);
}});
mListViewTrim.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
String choix = mDataTrim.get(position);
Bundle mObjetBundle = new Bundle(); //Permet de passer un paramètre à l'autre activité
mObjetBundle.putString("choix", choix);
Intent t = new Intent(getActivity(), Tableau.class); //permet d'appeler la nouvelle activité
t.putExtras(mObjetBundle);
startActivity(t);
}});
mListViewAnn.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
String choix = mDataAnn.get(position);
Bundle mObjetBundle = new Bundle(); //Permet de passer un paramètre à l'autre activité
mObjetBundle.putString("choix", choix);
Intent t = new Intent(getActivity(), Tableau.class); //permet d'appeler la nouvelle activité
t.putExtras(mObjetBundle);
startActivity(t);
}});
return v;
}
/**==================================================================================
Class permettant le chargement des données en asynchrone pour chaque adaptateur
==================================================================================**/
public class AsyncDownloadAll extends AsyncTask<String, Void, List<String>>{ //Ligne et structure modifiée
@Override
protected List<String> doInBackground(String... params) {
// TODO Auto-generated method stub
String url = params[0];
String key= params[1];
String periode = params[2]; //Ligne modifiée
mInputStream = mHttpConnexion.getConnexionHttp(url, key, periode); //Ligne modifiée
String res = mHttpConnexion.convertToString(mInputStream);
mDataAll = mHttpConnexion.parseJsonFile(res);
return mDataAll;
}
@Override
protected void onPostExecute(List<String> result) {
super.onPostExecute(result);
if (result != null){
mDataAll=result;
mAdapterAll.clear();
for (String str : result){ //for i:0; i<mData.size(); i++ ==> String str = mData.get(i) // Ligne modifiée
mAdapterAll.add(str);
}
mAdapterAll.notifyDataSetChanged();
}
}
}
public class AsyncDownloadQuot extends AsyncTask<String, Void, List<String>>{
@Override
protected List<String> doInBackground(String... params) {
// TODO Auto-generated method stub
String url = params[0];
String key= params[1];
String periode = params[2];
mInputStream = mHttpConnexion.getConnexionHttp(url, key, periode);
String res = mHttpConnexion.convertToString(mInputStream);
mDataQuot = mHttpConnexion.parseJsonFile(res);
return mDataQuot;
}
@Override
protected void onPostExecute(List<String> result) {
super.onPostExecute(result);
if (mInputStream != null){
mAdapterQuot.clear();
for (String str : result){ //for i:0; i<mData.size(); i++ ==> String str = mData.get(i)
mAdapterQuot.add(str);
}
mAdapterQuot.notifyDataSetChanged();
}
}
}
public class AsyncDownloadHebd extends AsyncTask<String, Void, List<String>>{
@Override
protected List<String> doInBackground(String... params) {
// TODO Auto-generated method stub
String url = params[0];
String key= params[1];
String periode = params[2];
mInputStream = mHttpConnexion.getConnexionHttp(url, key, periode);
String res = mHttpConnexion.convertToString(mInputStream);
mDataHebd = mHttpConnexion.parseJsonFile(res);
return mDataHebd;
}
@Override
protected void onPostExecute(List<String> result) {
super.onPostExecute(result);
if (mInputStream != null){
mAdapterHebd.clear();
for (String str : result){
mAdapterHebd.add(str);
}
mAdapterHebd.notifyDataSetChanged();
}
}
}
public class AsyncDownloadMens extends AsyncTask<String, Void, List<String>>{
@Override
protected List<String> doInBackground(String... params) {
// TODO Auto-generated method stub
String url = params[0];
String key= params[1];
String periode = params[2];
mInputStream = mHttpConnexion.getConnexionHttp(url, key, periode);
String res = mHttpConnexion.convertToString(mInputStream);
mDataMens = mHttpConnexion.parseJsonFile(res);
return mDataMens;
}
@Override
protected void onPostExecute(List<String> result) {
super.onPostExecute(result);
if (mInputStream != null){
mAdapterMens.clear();
for (String str : result){
mAdapterMens.add(str);
}
mAdapterMens.notifyDataSetChanged();
}
}
}
public class AsyncDownloadTrim extends AsyncTask<String, Void, List<String>>{
@Override
protected List<String> doInBackground(String... params) {
// TODO Auto-generated method stub
String url = params[0];
String key= params[1];
String periode = params[2];
mInputStream = mHttpConnexion.getConnexionHttp(url, key, periode);
String res = mHttpConnexion.convertToString(mInputStream);
mDataTrim = mHttpConnexion.parseJsonFile(res);
return mDataTrim;
}
@Override
protected void onPostExecute(List<String> result) {
super.onPostExecute(result);
if (mInputStream != null){
mAdapterTrim.clear();
for (String str : result){
mAdapterTrim.add(str);
}
mAdapterTrim.notifyDataSetChanged();
}
}
}
public class AsyncDownloadAnn extends AsyncTask<String, Void, List<String>>{
@Override
protected List<String> doInBackground(String... params) {
// TODO Auto-generated method stub
String url = params[0];
String key= params[1];
String periode = params[2];
mInputStream = mHttpConnexion.getConnexionHttp(url, key, periode);
String res = mHttpConnexion.convertToString(mInputStream);
mDataAnn = mHttpConnexion.parseJsonFile(res);
return mDataAnn;
}
@Override
protected void onPostExecute(List<String> result) {
super.onPostExecute(result);
if (mInputStream != null){
mAdapterAnn.clear();
for (String str : result){
mAdapterAnn.add(str);
}
mAdapterAnn.notifyDataSetChanged();
}
}
}
}
Code adapter
package rapport.presse.cim;
import java.util.List;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
//On fournit à l'adapter la liste des fragments à afficher
public class MyPagerAdapter extends FragmentPagerAdapter {
private final List fragments;
public MyPagerAdapter(FragmentManager fm, List fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return (Fragment) this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
}
Code selon le tuto d'AndroWiiid
ViewPager
package rapport.presse.cim;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.*;
public class CIMPresseActivity extends FragmentActivity{
/** Called when the activity is first created. */
private PagerAdapter mPagerAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/**===============================================
Gestion du slide entre page
===============================================**/
/**Création des fragments**/
/**List fragments = new Vector();
fragments.add(Fragment.instantiate(this,First.class.getName()));
fragments.add(Fragment.instantiate(this,First.class.getName()));
fragments.add(Fragment.instantiate(this,First.class.getName()));**/
/**Adaptater pour l'affichage des fragments (liste)*/
// this.mPagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager(), fragments);
this.mPagerAdapter = new MyPagerAdapter(super.getSupportFragmentManager());
ViewPager pager = (ViewPager) super.findViewById(R.id.viewpager);
/** Affectation de l'adapter au ViewPager**/
pager.setAdapter(this.mPagerAdapter);
}
}
Fragment
package rapport.presse.cim;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import rapport.presse.cim.R.id;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
public class First extends Fragment{
public static First newInstance(String chaine) {
First fragment = new First();
Bundle args = new Bundle();
args.putString("KEY_STRING", chaine);
fragment.setArguments(args);
return fragment;
}
private TextView titre;
final String urlView1="http://192.168.1.100/cimPresse.php?donnee=getName&country=all";
final String urlView2="http://192.168.1.100/cimPresse.php?donnee=getName&country=be";
final String urlView3="http://192.168.1.100/cimPresse.php?donnee=getName&country=lu";
public HttpConnexion mHttpConnexion = new HttpConnexion();
public InputStream mInputStream;
//public List<String>[] tabVarList = {mDataAll, mDataQuot, mDataHebd, mDataMens, mDataTrim, mDataAnn};
/**===============================================
Création des list de donnée pour chaque listView
===============================================**/
public List<String> mDataAll = new ArrayList<String>();
public List<String> mDataQuot = new ArrayList<String>();
public List<String> mDataHebd = new ArrayList<String>();
public List<String> mDataMens = new ArrayList<String>();
public List<String> mDataTrim = new ArrayList<String>();
public List<String> mDataAnn = new ArrayList<String>();
/**===============================================
Déclaration des différents adaptateur
===============================================**/
public ArrayAdapter<String> mAdapterAll, mAdapterQuot, mAdapterHebd, mAdapterMens, mAdapterTrim, mAdapterAnn;
/**===============================================
Déclaration des listView
===============================================**/
public ListView mListViewAll, mListViewQuot, mListViewHebd, mListViewMens, mListViewTrim, mListViewAnn;
/**===============================================
Déclaration des bouttons
===============================================**/
public Button mButtonAll, mButtonQuot, mButtonHebd, mButtonMens, mButtonTrim, mButtonAnn;
/**public Button[] tabVarButton = {mButtonAll, mButtonQuot, mButtonHebd, mButtonMens, mButtonTrim, mButtonAnn};
public int[] tabVarPeriode = {R.id.all, R.id.quot, R.id.hebd, R.id.mens, R.id.trim, R.id.ann};**/
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v= inflater.inflate(R.layout.first, container, false);
titre = (TextView) v.findViewById(R.id.fragmentTitle);
Bundle args = getArguments();
titre.setText(args.getString("KEY_STRING"));
/**=======================================================
Appel des fonction asynchrone pour remplir les adaptateurs
=======================================================**/
new AsyncDownloadAll().execute(urlView1, "periode", "allPeriode"); //Ligne changée
new AsyncDownloadQuot().execute(urlView1, "periode", "daily");
new AsyncDownloadHebd().execute(urlView1, "periode", "weekly");
new AsyncDownloadMens().execute(urlView1, "periode", "monthly");
new AsyncDownloadTrim().execute(urlView1, "periode", "quarterly");
new AsyncDownloadAnn().execute(urlView1, "periode", "annual");
/**===============================================
Création des adaptateurs
===============================================**/
mAdapterAll = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataAll);
mAdapterQuot = new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataQuot);
mAdapterHebd= new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataHebd);
mAdapterMens= new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataMens);
mAdapterTrim= new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataTrim);
mAdapterAnn= new ArrayAdapter<String>(this.getActivity(), android.R.layout.simple_list_item_1, mDataAnn);
/**===============================================
Appel des layouts des boutons
===============================================**/
//récupération des Boutons
mButtonAll = (Button) v.findViewById(R.id.all);
mButtonQuot= (Button) v.findViewById(R.id.quot);
mButtonHebd = (Button)v.findViewById(R.id.hebd);
mButtonMens = (Button)v.findViewById(R.id.mens);
mButtonTrim = (Button)v.findViewById(R.id.trim);
mButtonAnn = (Button)v.findViewById(R.id.ann);
/**for(int i=0; i==tabVarButton.length; i++){
tabVarButton[i] = (Button) v.findViewById(tabVarPeriode[i]);
}**/
/**===============================================
Appel des layouts des listView
===============================================**/
mListViewAll = (ListView) v.findViewById(R.id.ListViewAll);
mListViewQuot = (ListView) v.findViewById(R.id.ListViewQuot);
mListViewHebd = (ListView) v.findViewById(R.id.ListViewHebd);
mListViewMens = (ListView) v.findViewById(R.id.ListViewMens);
mListViewTrim = (ListView) v.findViewById(R.id.ListViewTrim);
mListViewAnn = (ListView) v.findViewById(R.id.ListViewAnn);
/**===============================================
Gestion de l'affichage des listView
===============================================**/
mListViewAll.setVisibility(View.GONE);
mListViewQuot.setVisibility(View.GONE);
mListViewHebd.setVisibility(View.GONE);
mListViewMens.setVisibility(View.GONE);
mListViewTrim.setVisibility(View.GONE);
mListViewAnn.setVisibility(View.GONE);
/**===============================================
On lie les listView à leur adaptateur
===============================================**/
mListViewAll.setAdapter(mAdapterAll);
mListViewQuot.setAdapter(mAdapterQuot);
mListViewHebd.setAdapter(mAdapterHebd);
mListViewMens.setAdapter(mAdapterMens);
mListViewTrim.setAdapter(mAdapterTrim);
mListViewAnn.setAdapter(mAdapterAnn);
/**===============================================
Gestion des cliques pour les boutons
===============================================**/
mButtonAll.setOnClickListener (new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(mListViewAll.isShown()){
mListViewAll.setVisibility(View.GONE);
}
else{
mListViewAll.setVisibility(View.VISIBLE);
}
}
});
mButtonQuot.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(mListViewQuot.isShown()){
mListViewQuot.setVisibility(View.GONE);
}
else{
mListViewQuot.setVisibility(View.VISIBLE);
}
}
});
mButtonHebd.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(mListViewHebd.isShown()){
mListViewHebd.setVisibility(View.GONE);
}
else{
mListViewHebd.setVisibility(View.VISIBLE);
}
}
});
mButtonMens.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(mListViewMens.isShown()){
mListViewMens.setVisibility(View.GONE);
}
else{
mListViewMens.setVisibility(View.VISIBLE);
}
}
});
mButtonTrim.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(mListViewTrim.isShown()){
mListViewTrim.setVisibility(View.GONE);
}
else{
mListViewTrim.setVisibility(View.VISIBLE);
}
}
});
mButtonAnn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
if(mListViewAnn.isShown()){
mListViewAnn.setVisibility(View.GONE);
}
else{
mListViewAnn.setVisibility(View.VISIBLE);
}
}
});
/**===============================================
Gestion des cliques dans les listView
===============================================**/
mListViewAll.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
String choix = mDataAll.get(position);
Bundle mObjetBundle = new Bundle(); //Permet de passer un paramètre à l'autre activité
mObjetBundle.putString("choix", choix);
Intent t = new Intent(getActivity(), Tableau.class); //permet d'appeler la nouvelle activité
t.putExtras(mObjetBundle);
startActivity(t);
}});
mListViewQuot.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
String choix = mDataQuot.get(position);
Bundle mObjetBundle = new Bundle(); //Permet de passer un paramètre à l'autre activité
mObjetBundle.putString("choix", choix);
Intent t = new Intent(getActivity(), Tableau.class); //permet d'appeler la nouvelle activité
t.putExtras(mObjetBundle);
startActivity(t);
}});
mListViewHebd.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
String choix = mDataHebd.get(position);
Bundle mObjetBundle = new Bundle(); //Permet de passer un paramètre à l'autre activité
mObjetBundle.putString("choix", choix);
Intent t = new Intent(getActivity(), Tableau.class); //permet d'appeler la nouvelle activité
t.putExtras(mObjetBundle);
startActivity(t);
}});
mListViewMens.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
String choix = mDataMens.get(position);
Bundle mObjetBundle = new Bundle(); //Permet de passer un paramètre à l'autre activité
mObjetBundle.putString("choix", choix);
Intent t = new Intent(getActivity(), Tableau.class); //permet d'appeler la nouvelle activité
t.putExtras(mObjetBundle);
startActivity(t);
}});
mListViewTrim.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
String choix = mDataTrim.get(position);
Bundle mObjetBundle = new Bundle(); //Permet de passer un paramètre à l'autre activité
mObjetBundle.putString("choix", choix);
Intent t = new Intent(getActivity(), Tableau.class); //permet d'appeler la nouvelle activité
t.putExtras(mObjetBundle);
startActivity(t);
}});
mListViewAnn.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// TODO Auto-generated method stub
String choix = mDataAnn.get(position);
Bundle mObjetBundle = new Bundle(); //Permet de passer un paramètre à l'autre activité
mObjetBundle.putString("choix", choix);
Intent t = new Intent(getActivity(), Tableau.class); //permet d'appeler la nouvelle activité
t.putExtras(mObjetBundle);
startActivity(t);
}});
return v;
}
/**==================================================================================
Class permettant le chargement des données en asynchrone pour chaque adaptateur
==================================================================================**/
public class AsyncDownloadAll extends AsyncTask<String, Void, List<String>>{ //Ligne et structure modifiée
@Override
protected List<String> doInBackground(String... params) {
// TODO Auto-generated method stub
String url = params[0];
String key= params[1];
String periode = params[2]; //Ligne modifiée
mInputStream = mHttpConnexion.getConnexionHttp(url, key, periode); //Ligne modifiée
String res = mHttpConnexion.convertToString(mInputStream);
mDataAll = mHttpConnexion.parseJsonFile(res);
return mDataAll;
}
@Override
protected void onPostExecute(List<String> result) {
super.onPostExecute(result);
if (result != null){
mDataAll=result;
mAdapterAll.clear();
for (String str : result){ //for i:0; i<mData.size(); i++ ==> String str = mData.get(i) // Ligne modifiée
mAdapterAll.add(str);
}
mAdapterAll.notifyDataSetChanged();
}
}
}
public class AsyncDownloadQuot extends AsyncTask<String, Void, List<String>>{
@Override
protected List<String> doInBackground(String... params) {
// TODO Auto-generated method stub
String url = params[0];
String key= params[1];
String periode = params[2];
mInputStream = mHttpConnexion.getConnexionHttp(url, key, periode);
String res = mHttpConnexion.convertToString(mInputStream);
mDataQuot = mHttpConnexion.parseJsonFile(res);
return mDataQuot;
}
@Override
protected void onPostExecute(List<String> result) {
super.onPostExecute(result);
if (mInputStream != null){
mAdapterQuot.clear();
for (String str : result){ //for i:0; i<mData.size(); i++ ==> String str = mData.get(i)
mAdapterQuot.add(str);
}
mAdapterQuot.notifyDataSetChanged();
}
}
}
public class AsyncDownloadHebd extends AsyncTask<String, Void, List<String>>{
@Override
protected List<String> doInBackground(String... params) {
// TODO Auto-generated method stub
String url = params[0];
String key= params[1];
String periode = params[2];
mInputStream = mHttpConnexion.getConnexionHttp(url, key, periode);
String res = mHttpConnexion.convertToString(mInputStream);
mDataHebd = mHttpConnexion.parseJsonFile(res);
return mDataHebd;
}
@Override
protected void onPostExecute(List<String> result) {
super.onPostExecute(result);
if (mInputStream != null){
mAdapterHebd.clear();
for (String str : result){
mAdapterHebd.add(str);
}
mAdapterHebd.notifyDataSetChanged();
}
}
}
public class AsyncDownloadMens extends AsyncTask<String, Void, List<String>>{
@Override
protected List<String> doInBackground(String... params) {
// TODO Auto-generated method stub
String url = params[0];
String key= params[1];
String periode = params[2];
mInputStream = mHttpConnexion.getConnexionHttp(url, key, periode);
String res = mHttpConnexion.convertToString(mInputStream);
mDataMens = mHttpConnexion.parseJsonFile(res);
return mDataMens;
}
@Override
protected void onPostExecute(List<String> result) {
super.onPostExecute(result);
if (mInputStream != null){
mAdapterMens.clear();
for (String str : result){
mAdapterMens.add(str);
}
mAdapterMens.notifyDataSetChanged();
}
}
}
public class AsyncDownloadTrim extends AsyncTask<String, Void, List<String>>{
@Override
protected List<String> doInBackground(String... params) {
// TODO Auto-generated method stub
String url = params[0];
String key= params[1];
String periode = params[2];
mInputStream = mHttpConnexion.getConnexionHttp(url, key, periode);
String res = mHttpConnexion.convertToString(mInputStream);
mDataTrim = mHttpConnexion.parseJsonFile(res);
return mDataTrim;
}
@Override
protected void onPostExecute(List<String> result) {
super.onPostExecute(result);
if (mInputStream != null){
mAdapterTrim.clear();
for (String str : result){
mAdapterTrim.add(str);
}
mAdapterTrim.notifyDataSetChanged();
}
}
}
public class AsyncDownloadAnn extends AsyncTask<String, Void, List<String>>{
@Override
protected List<String> doInBackground(String... params) {
// TODO Auto-generated method stub
String url = params[0];
String key= params[1];
String periode = params[2];
mInputStream = mHttpConnexion.getConnexionHttp(url, key, periode);
String res = mHttpConnexion.convertToString(mInputStream);
mDataAnn = mHttpConnexion.parseJsonFile(res);
return mDataAnn;
}
@Override
protected void onPostExecute(List<String> result) {
super.onPostExecute(result);
if (mInputStream != null){
mAdapterAnn.clear();
for (String str : result){
mAdapterAnn.add(str);
}
mAdapterAnn.notifyDataSetChanged();
}
}
}
}
Adapter
package rapport.presse.cim;
import java.util.List;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
//On fournit à l'adapter la liste des fragments à afficher
public class MyPagerAdapter extends FragmentPagerAdapter {
//private final List fragments;
//public MyPagerAdapter(FragmentManager fm, List fragments) {
public MyPagerAdapter(FragmentManager fm) {
super(fm);
//this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
//return (Fragment) this.fragments.get(position);
switch(position) {
case 1: return First.newInstance("Je suis le premier écran !");
case 2: return First.newInstance("Je suis le second écran !");
case 3: return First.newInstance("Je suis le troisième écran !");
}
return null;
}
@Override
public int getCount() {
//return this.fragments.size();
return 3;
}
}
LogCat
12-12 11:03:37.901: I/dalvikvm(576): threadid=3: reacting to signal 3
12-12 11:03:38.221: I/dalvikvm(576): Wrote stack traces to '/data/anr/traces.txt'
12-12 11:03:38.431: I/dalvikvm(576): threadid=3: reacting to signal 3
12-12 11:03:38.502: I/dalvikvm(576): Wrote stack traces to '/data/anr/traces.txt'
12-12 11:03:38.941: I/dalvikvm(576): threadid=3: reacting to signal 3
12-12 11:03:38.992: I/dalvikvm(576): Wrote stack traces to '/data/anr/traces.txt'
12-12 11:03:39.021: D/AndroidRuntime(576): Shutting down VM
12-12 11:03:39.040: W/dalvikvm(576): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
12-12 11:03:39.051: E/AndroidRuntime(576): FATAL EXCEPTION: main
12-12 11:03:39.051: E/AndroidRuntime(576): java.lang.NullPointerException
12-12 11:03:39.051: E/AndroidRuntime(576): at android.support.v4.app.BackStackRecord.doAddOp(BackStackRecord.java:347)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.support.v4.app.BackStackRecord.add(BackStackRecord.java:342)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.support.v4.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:97)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:649)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.support.v4.view.ViewPager.populate(ViewPager.java:783)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1016)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.view.View.measure(View.java:12723)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.view.View.measure(View.java:12723)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.widget.LinearLayout.measureVertical(LinearLayout.java:812)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.widget.LinearLayout.onMeasure(LinearLayout.java:553)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.view.View.measure(View.java:12723)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
12-12 11:03:39.051: E/AndroidRuntime(576): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2092)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.view.View.measure(View.java:12723)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1064)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2442)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.os.Handler.dispatchMessage(Handler.java:99)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.os.Looper.loop(Looper.java:137)
12-12 11:03:39.051: E/AndroidRuntime(576): at android.app.ActivityThread.main(ActivityThread.java:4424)
12-12 11:03:39.051: E/AndroidRuntime(576): at java.lang.reflect.Method.invokeNative(Native Method)
12-12 11:03:39.051: E/AndroidRuntime(576): at java.lang.reflect.Method.invoke(Method.java:511)
12-12 11:03:39.051: E/AndroidRuntime(576): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
12-12 11:03:39.051: E/AndroidRuntime(576): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
12-12 11:03:39.051: E/AndroidRuntime(576): at dalvik.system.NativeStart.main(Native Method)
12-12 11:03:39.460: I/dalvikvm(576): threadid=3: reacting to signal 3
12-12 11:03:39.520: I/dalvikvm(576): Wrote stack traces to '/data/anr/traces.txt'
12-12 11:03:39.960: I/dalvikvm(576): threadid=3: reacting to signal 3
12-12 11:03:40.010: I/dalvikvm(576): Wrote stack traces to '/data/anr/traces.txt'
12-12 11:03:40.130: I/dalvikvm(576): threadid=3: reacting to signal 3
12-12 11:03:40.180: I/dalvikvm(576): Wrote stack traces to '/data/anr/traces.txt'
12-12 11:08:39.852: I/Process(576): Sending signal. PID: 576 SIG: 9
Si quelqu'un pourrait me dépanner ça serait vraiment bien, et ça me sortirait pas mal de la merde aussi
[Android] Plantage application avec ViewPager
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.