IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Ajout de bouton


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Cisco
    Inscrit en
    Juillet 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Cisco
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 71
    Par défaut Ajout de bouton
    Bonjour a tous, mon but etant d'afficher dans une vue, une liste d'item par categorie.
    Peu de contenu etant present sur la toile je me pose le probleme suivant :

    Voici donc mon activity :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    public class ListSample_category3 extends Activity 
    {
     
    	public final static String ITEM_TITLE = "title";
    	public final static String ITEM_COMPANY= "company";
    	public final static String ITEM_DATE = "availabledate";
     
    	public Map<String,?> createItem(String title, String company, String date) 
    	{
    		Map<String,String> item = new HashMap<String,String>();
    		item.put(ITEM_TITLE, title);
    		item.put(ITEM_COMPANY, company);
    		item.put(ITEM_DATE, date);
    		return item;
    	}
     
    	@Override
    	public void onCreate(Bundle bundle) 
    	{
    		super.onCreate(bundle);
     
    		List<Map<String,?>> security = new LinkedList<Map<String,?>>();
    		security.add(createItem("Remember passwords", "Cisco", "2012-02-10"));
    		security.add(createItem("Clear passwords", "Microsoft", "2012-02-10"));
    		security.add(createItem("Show security warnings", "Apple", "2012-02-10"));
     
    		// create our list and custom adapter
    		SeparatedListAdapter adapter = new SeparatedListAdapter(this);
     
    		adapter.addSection("Categorie 1", new ArrayAdapter<String>(this,
    			R.layout.list_item_category3, new String[] { "First item", "Item two" }));
     
    		adapter.addSection("Categorie 2", new SimpleAdapter(this, security, R.layout.list_complex_category3, 
    			new String[] { ITEM_TITLE, ITEM_COMPANY, ITEM_DATE }, new int[] { R.id.list_complex_title, R.id.list_complex_company, R.id.list_complex_date }));
     
     
                   // create ListView
    		ListView list = new ListView(this);
     
    		// OnItemClickListener on all items
    		OnItemClickListener listener = new OnItemClickListener()
    	        {
    	    	  public void onItemClick(AdapterView<?> parent, View view, int position, long id)
    	    	  {
    	    		Intent intent_to_main = new Intent(ListSample_category3.this, UserScreen.class);
    	  			startActivity(intent_to_main);
    	    	  }
    	      };
                list.setOnItemClickListener(listener);
    	    list.setItemsCanFocus(true);
     
    	    list.setAdapter(adapter);
    		this.setContentView(list);
    Mais le probleme d'ajouter un simple bouton tout en haut de mes items se pose encore pour moi , personne ne connait les BaseAdapter ou quoi?
    list.setAdapter(adapter);
    this.setContentView(list);

    }
    }
    [/CODE]

    Mon BaseAdapter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    101
    102
    103
    104
    105
     
    public class SeparatedListAdapter extends BaseAdapter 
    {
    	public final Map<String,Adapter> sections = new LinkedHashMap<String,Adapter>();
    	public final ArrayAdapter<String> headers;
    	public final static int TYPE_SECTION_HEADER = 0;
     
    	public SeparatedListAdapter(Context context) 
    	{
    		headers = new ArrayAdapter<String>(context, R.layout.list_header_category3);
    	}
     
    	public void addSection(String section, Adapter adapter) 
    	{
    		this.headers.add(section);
    		this.sections.put(section, adapter);
    	}
     
    	public Object getItem(int position) 
    	{
    		for(Object section : this.sections.keySet()) 
    		{
    			Adapter adapter = sections.get(section);
    			int size = adapter.getCount() + 1;
     
    			// check if position inside this section 
    			if(position == 0) return section;
    			if(position < size) return adapter.getItem(position - 1);
     
    			// otherwise jump into next section
    			position -= size;
    		}
    		return null;
    	}
     
    	public int getCount() 
    	{
    		// total together all sections, plus one for each section header
    		int total = 0;
    		for(Adapter adapter : this.sections.values())
    			total += adapter.getCount() + 1;
    		return total;
    	}
     
    	public int getViewTypeCount() 
    	{
    		// assume that headers count as one, then total all sections
    		int total = 1;
    		for(Adapter adapter : this.sections.values())
    			total += adapter.getViewTypeCount();
    		return total;
    	}
     
    	public int getItemViewType(int position) 
    	{
    		int type = 1;
    		for(Object section : this.sections.keySet()) 
    		{
    			Adapter adapter = sections.get(section);
    			int size = adapter.getCount() + 1;
     
    			// check if position inside this section 
    			if(position == 0) return TYPE_SECTION_HEADER;
    			if(position < size) return type + adapter.getItemViewType(position - 1);
     
    			// otherwise jump into next section
    			position -= size;
    			type += adapter.getViewTypeCount();
    		}
    		return -1;
    	}
     
    	public boolean areAllItemsSelectable() 
    	{
    		return false;
    	}
     
    	public boolean isEnabled(int position) 
    	{
    		return (getItemViewType(position) != TYPE_SECTION_HEADER);
    	}
     
    	public View getView(int position, View convertView, ViewGroup parent) 
    	{
    		int sectionnum = 0;
    		for(Object section : this.sections.keySet()) {
    			Adapter adapter = sections.get(section);
    			int size = adapter.getCount() + 1;
     
    			// check if position inside this section 
    			if(position == 0) return headers.getView(sectionnum, convertView, parent);
    			if(position < size) return adapter.getView(position - 1, convertView, parent);
     
    			// otherwise jump into next section
    			position -= size;
    			sectionnum++;
    		}
    		return null;
    	}
     
    	public long getItemId(int position) 
    	{
    		return position;
    	}
    }
    Voici les 3 fichiers xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <!-- list_header.xml -->
    <TextView
    	xmlns:android="http://schemas.android.com/apk/res/android"
    	android:id="@+id/list_header_title"
    	android:layout_width="fill_parent" 
    	android:layout_height="wrap_content"
    	android:paddingTop="2dip"
    	android:paddingBottom="2dip"
    	android:paddingLeft="5dip"
    	style="?android:attr/listSeparatorTextViewStyle" />

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <!-- list_item.xml -->
    <TextView
    	xmlns:android="http://schemas.android.com/apk/res/android"
    	android:id="@+id/list_item_title"
    	android:layout_width="fill_parent" 
    	android:layout_height="fill_parent"
    	android:paddingTop="10dip"
    	android:paddingBottom="10dip"
    	android:paddingLeft="15dip"
    	android:textAppearance="?android:attr/textAppearanceLarge"
    	/>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <!-- list_complex.xml -->
    <LinearLayout
    	xmlns:android="http://schemas.android.com/apk/res/android"
    	android:layout_width="fill_parent"
    	android:layout_height="wrap_content"
    	android:orientation="vertical"
    	android:paddingTop="10dip"
    	android:paddingBottom="10dip"
    	android:paddingLeft="15dip"
    	>
    	<TextView
    		android:id="@+id/list_complex_title"
    		android:layout_width="fill_parent"
    		android:layout_height="wrap_content"
    		android:textAppearance="?android:attr/textAppearanceLarge"
    		/>
    	<TextView
    		android:id="@+id/list_complex_caption"
    		android:layout_width="fill_parent"
    		android:layout_height="wrap_content"
    		android:textAppearance="?android:attr/textAppearanceSmall"
    		/>
    </LinearLayout>
    Mais le probleme auquel je me pose actuellement est de rajouter un Simple Button en haut de tout mes item..

    Sauriez vous comment proceder?

  2. #2
    Membre confirmé
    Homme Profil pro
    Cisco
    Inscrit en
    Juillet 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Cisco
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 71
    Par défaut
    J'ai essaye de creer un fichier XML qui prend une simple liste (dans l'objectif de pouvoir rajouter un bouton):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="utf-8"?>
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical">
            <ListView
                android:id="@+id/listpromo"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"/>
        </LinearLayout>
    et j'ai change mon activity en:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    public class ListSample_category3 extends Activity 
        {
     
        	public final static String ITEM_TITLE = "title";
        	public final static String ITEM_COMPANY= "company";
        	public final static String ITEM_DATE = "availabledate";
        	private ListView list;
     
        	public Map<String,?> createItem(String title, String company, String date) 
        	{
        		Map<String,String> item = new HashMap<String,String>();
        		item.put(ITEM_TITLE, title);
        		item.put(ITEM_COMPANY, company);
        		item.put(ITEM_DATE, date);
        		return item;
        	}
     
        	@Override
        	public void onCreate(Bundle bundle) 
        	{
        		super.onCreate(bundle);
     
        		List<Map<String,?>> security = new LinkedList<Map<String,?>>();
        		security.add(createItem("Remember passwords", "Cisco", "2012-02-10"));
        		security.add(createItem("Clear passwords", "Microsoft", "2012-02-10"));
        		security.add(createItem("Show security warnings", "Apple", "2012-02-10"));
     
        		// create our list and custom adapter
        		SeparatedListAdapter adapter = new SeparatedListAdapter(this);
     
        		adapter.addSection("Categorie 1", new ArrayAdapter<String>(this,
        			R.layout.list_item_category3, new String[] { "First item", "Item two" }));
     
        		adapter.addSection("Categorie 2", new SimpleAdapter(this, security, R.layout.list_complex_category3, 
        			new String[] { ITEM_TITLE, ITEM_COMPANY, ITEM_DATE }, new int[] { R.id.list_complex_title, R.id.list_complex_company, R.id.list_complex_date }));
     
        		// create ListView
        		//ListView list = new ListView(this);
        		list = (ListView) findViewById(R.id.listpromo);
     
        		// OnItemClickListener on all items
        		OnItemClickListener listener = new OnItemClickListener()
        	    {
        	    	  public void onItemClick(AdapterView<?> parent, View view, int position, long id)
        	    	  {
     
        	    	  }
        	    };
        		list.setOnItemClickListener(listener);
        	    list.setItemsCanFocus(true);
     
        	    list.setAdapter(adapter);
        		this.setContentView(list);
     
        	}
        }
    Mais j'ai un NullPointerException :

    08-05 14:49:24.875: E/AndroidRuntime(2558): FATAL EXCEPTION: main
    08-05 14:49:24.875: E/AndroidRuntime(2558): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dev.prixo/com.dev.prixo.OngletsActivity}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dev.prixo/com.dev.prixo.ListSample_category3}: java.lang.NullPointerException
    08-05 14:49:24.875: E/AndroidRuntime(2558): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)
    08-05 14:49:24.875: E/AndroidRuntime(2558): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
    08-05 14:49:24.875: E/AndroidRuntime(2558): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
    08-05 14:49:24.875: E/AndroidRuntime(2558): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
    08-05 14:49:24.875: E/AndroidRuntime(2558): at android.os.Handler.dispatchMessage(Handler.java:99)
    08-05 14:49:24.875: E/AndroidRuntime(2558): at android.os.Looper.loop(Looper.java:130)
    08-05 14:49:24.875: E/AndroidRuntime(2558): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dev.prixo/com.dev.prixo.ListSample_category3}: java.lang.NullPointerException


    Personne ne peut m'aider????

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Il manque quelques lignes du logcat.... et hélas, les plus interessantes (la cause du NPE).

Discussions similaires

  1. Ajouter un bouton dans la caption bar???
    Par benahpets dans le forum MFC
    Réponses: 4
    Dernier message: 24/06/2005, 13h18
  2. [Débutant] ajouter un bouton à JPanel
    Par rabobsky dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 10/06/2005, 18h08
  3. Réponses: 5
    Dernier message: 07/04/2005, 15h15
  4. [BCB 5.0] Ajouter un bouton dans internet explorer
    Par GthrDns dans le forum C++Builder
    Réponses: 2
    Dernier message: 01/02/2004, 22h54
  5. Ajout de bouton de commandes dans la barre de menus
    Par vanessaf22 dans le forum IHM
    Réponses: 9
    Dernier message: 21/07/2003, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo