Insérer un slider pour contenu d'articles
Bonjour,
Je récupère grâce au Parser Json des articles de mon site web. Pour la mise en forme j'ai créer une classe MyAdapter. J'aimerais que mes 3 premiers articles de présente sous forme de slider (diaporama)
MonActivitePrincipale
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| package com.b1905;
import java.util.ArrayList;
import java.util.HashMap;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.b1905.R;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;
public class Bastia1905Activity extends ListActivity {
/** Called when the activity is first created. */
private myBaseAdapter adapter = null;
private ListView lv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.attualita);
ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
JSONObject json = JSONfunctions.getJSONfromURL("http://bastia1905.com/android/export_android.php");
try{
JSONArray earthquakes = json.getJSONArray("articles");
for(int i=0;i<earthquakes.length();i++){
HashMap<String, String> map = new HashMap<String, String>();
JSONObject e = earthquakes.getJSONObject(i);
map.put("id", String.valueOf(i));
map.put("titre", e.getString("titre"));
map.put("extrait", e.getString("extrait"));
map.put("thumb", e.getString("thumb"));
map.put("date", e.getString("date"));
map.put("detail", e.getString("detail"));
mylist.add(map);
}
}catch(JSONException e) {
Log.e("log_tag", "Error parsing data "+e.toString());
}
adapter = new myBaseAdapter(this,this,mylist);
lv = getListView();
lv.setAdapter(adapter);
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
@SuppressWarnings("unchecked")
HashMap<String, String> o = (HashMap<String, String>) lv.getItemAtPosition(position);
// Nous définissons notre intent en lui disant quelle classe il faut utiliser
Intent affichearticle = new Intent(getApplicationContext(),ArticleActivity.class);
affichearticle.putExtra("titre", o.get("titre"));
affichearticle.putExtra("detail", o.get("detail"));
// On appelle l'activity
startActivity(affichearticle);
}
});
}
} |
Mon BaseAdapter
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
| package com.b1905;
import java.util.ArrayList;
import java.util.HashMap;
import com.b1905.ImageLoader;
import com.b1905.R;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class myBaseAdapter extends BaseAdapter
{
ArrayList<HashMap<String, String>> mylist;
LayoutInflater inflater;
//ImageView img;
private Activity activity;
public ImageLoader imageLoader;
public myBaseAdapter (Context context, Activity mon_activite,ArrayList<HashMap<String, String>> myList)
{
activity = mon_activite;
inflater = LayoutInflater.from (context);
this.mylist = myList;
imageLoader=new ImageLoader(activity.getApplicationContext());
}
public int getCount ()
{
return mylist.size ();
}
public Object getItem (int position)
{
return mylist.get (position);
}
public long getItemId (int position)
{
// TODO Auto-generated method stub
return position;
}
public View getView (int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
if (convertView == null)
{
holder = new ViewHolder ();
convertView = inflater.inflate (R.layout.listplaceholder, null);
holder.titre = (TextView) convertView.findViewById (R.id.item_title);
holder.extrait = (TextView) convertView.findViewById (R.id.item_subtitle);
holder.thumb = (ImageView) convertView.findViewById (R.id.item_thumb);
holder.date = (TextView) convertView.findViewById (R.id.item_date);
convertView.setTag (holder);
}
else
{
holder = (ViewHolder) convertView.getTag ();
}
// ALTERNANCE COULEUR LINEAR LAYOUT
LinearLayout li=(LinearLayout)convertView.findViewById(R.id.linear_article);
if(position % 2==0)
{
li.setBackgroundColor(Color.rgb(235,235,235));
}
else li.setBackgroundColor(Color.rgb(255,255,255));
holder.titre.setText (mylist.get (position).get ("titre").toString ());
holder.extrait.setText (mylist.get (position).get ("extrait").toString ());
holder.date.setText ("Publié le "+mylist.get (position).get ("date").toString ());
imageLoader.DisplayImage(mylist.get (position).get ("thumb").toString (), activity, holder.thumb);
return convertView;
}
public class ViewHolder
{
TextView titre;
TextView extrait;
ImageView thumb;
TextView date;
}
} |