Bonjour,
Je travaille sur une application qui contient sur la première page une list de pays et lorsque j'appuie dessu rien de se passe.
Je suis dans un fragment.
Voilà mon Java:
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
public class HomeFragment extends Fragment {
 
    private ListView mDrawerList;
    private String[] navMenuTitles;
    private TypedArray navMenuIcons;
    private ArrayList<NavDrawerItem> navDrawerItems;
    private NavDrawerListAdapter adapter;
    private TextView txt;
 
    EditText search;
 
 
    public HomeFragment() {}
 
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
 
        //construction de la vue
        View rootView = inflater.inflate(R.layout.fragment_home, container, false);
 
        //Variable de pub
        AdView mAdView = (AdView) rootView.findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
 
        TextView txt =(TextView) rootView.findViewById(R.id.settxt);
        // recuperation du texte a afficher pour le menu
        navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);
        // recupertation des icones pour le menu
        navMenuIcons = getResources().obtainTypedArray(R.array.nav_drawer_icons);
        //recuperation de la list pour le menu
        mDrawerList = (ListView) rootView.findViewById(R.id.listPays);
        //Création de la list pour afficher dans le menu
        navDrawerItems = new ArrayList<NavDrawerItem>();
 
        // Assemblage de l'icon et du titre pour , par la suite, les afficher ensemble dans le menu
        // Suisse
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
        // France
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1)));
        // Chine
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1)));
        // etats unis
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1)));
        // Angleterre
        navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons.getResourceId(5, -1)));
 
 
        // Reprise des icones
        navMenuIcons.recycle();
 
        // adaptation de la list
        adapter = new NavDrawerListAdapter(getActivity().getApplicationContext(),navDrawerItems);
 
        mDrawerList.setAdapter(adapter);
 
    return rootView;}
    private class SlideMenuClickListener implements
            ListView.OnItemClickListener
    {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position,long id)
        {
            displayView(position);
        }
    }
    private void displayView(int position) {
        Fragment fragment = null;
        switch (position) {
            case 0:
                txt.setText("Hello je test");
                break;
            case 1:
                txt.setText("Hello dwawwfw test");
                break;
            case 2:
                fragment = new FrenchFragment();
                break;
            case 3:
                fragment = new SwissFragment();
                break;
            case 4:
                fragment = new UKFragment();
                break;
            case 5:
                fragment = new USFragment();
                break;
            default:
                break;
        }
 
 
        if (fragment != null) {
            FragmentManager fragmentManager = getFragmentManager();
            fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
 
            mDrawerList.setItemChecked(position, true);
            mDrawerList.setSelection(position);
        } else {
            // si le fragment n'existe pas il sera afficher :
            Log.e("MainActivity", "Error in creating fragment");
        }
 
 
 
 
 
 
       search.addTextChangedListener(new TextWatcher() {
 
            @Override
            public void onTextChanged(CharSequence arg0, int arg1, int arg2,
                                      int arg3) {
                // TODO Auto-generated method stub
 
            }
 
            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1,
                                          int arg2, int arg3) {
                // TODO Auto-generated method stub
 
            }
 
            @Override
            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub
                filtrer();
            }
        });
        //On retourne à l'utilisateur la vue
    }
 
   public void filtrer() {
        // afficher les lettre entrée par l'utilisateur
        String name = search.getText().toString();
        // afficher seulement les résultats de la recherche
        ArrayList<NavDrawerItem> listPaysNew = new ArrayList<NavDrawerItem>();
 
 
       // si le nom du pays commence par les lettres entrée par l'utilisateur, il sera affiché
       for (NavDrawerItem pays : navDrawerItems)
           if (pays.getTitle().toLowerCase().toString().startsWith(name)) {
               listPaysNew.add(pays);
           }
        // vider la liste
       mDrawerList.setAdapter(null);
        if (listPaysNew.size() == 0) {
 
        }
 
        // ajouter la nouvelle liste
       mDrawerList.setAdapter(new NavDrawerListAdapter(getActivity().getApplicationContext(), listPaysNew));
 
    }
}
Ne faite pas Attention à la recherche, je penses la suprimer
Voilà mon XML:
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
<?xml version="1.0" encoding="utf-8"?>
<!--Organisation du menu de façon lineaire-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/LinearLayout1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:background="#ff0c2038">
 
    <!--l'EditText sera programmée comme barre de recherche-->
        <EditText
            android:id="@+id/search"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Cherhcer un pays" >
        </EditText>
 
    <!--Une liste sera affihcée-->
        <ListView
            android:id="@+id/listPays"
            android:layout_width="match_parent"
            android:layout_height="290dp"
            android:divider="@color/list_divider" >
        </ListView>
 
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/settxt"/>
 
    <com.google.android.gms.ads.AdView
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_ad_unit_id"
        android:layout_centerInParent="true">
    </com.google.android.gms.ads.AdView>
 
</LinearLayout>
Si vous voulez plus de code demandez moi ;]
Merci d'avance .