Bonjour,

J'ai un problème qui commence vraiment à m'énerver.
Je cherche à mettre au pied d'une ListView 2 boutons. Cependant mon application crash lors de l'execution de la ligne set Adapter.

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
 
package app.main.launcher;
 
import java.util.ArrayList;
 
import android.app.Activity;
//import android.app.Activity;
import android.app.ListActivity;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
 
public class AndroidFirstApp extends /*List*/Activity{
    /** Called when the activity is first created. */
 
	private TextView tV = null;
	private Button okButton = null;
	private Button cancelButton = null;
	private ListView listView = null;
 
	static final String[] COUNTRIES = new String[] {
	    "Afghanistan", "Albania", "Algeria", "American Samoa", "Andorra",
	    "Angola", "Anguilla", "Antarctica", "Antigua and Barbuda", "Argentina",
	    "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan",
	    "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belgium",
	    "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia",
	    "Bosnia and Herzegovina", "Botswana", "Bouvet Island", "Brazil", "British Indian Ocean Territory",
	    "British Virgin Islands", "Brunei", "Bulgaria", "Burkina Faso", "Burundi",
	    "Cote d'Ivoire", "Cambodia", "Cameroon", "Canada", "Cape Verde",
	    "Cayman Islands", "Central African Republic", "Chad", "Chile", "China",
	    "Christmas Island", "Cocos (Keeling) Islands", "Colombia", "Comoros", "Congo",
	    "Cook Islands", "Costa Rica", "Croatia", "Cuba", "Cyprus", "Czech Republic",
	    "Democratic Republic of the Congo", "Denmark", "Djibouti", "Dominica", "Dominican Republic",
	    "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea",
	    "Estonia", "Ethiopia", "Faeroe Islands", "Falkland Islands", "Fiji", "Finland",
	    "Former Yugoslav Republic of Macedonia", "France", "French Guiana", "French Polynesia",
	    "French Southern Territories", "Gabon", "Georgia", "Germany", "Ghana", "Gibraltar",
	    "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guinea", "Guinea-Bissau",
	    "Guyana", "Haiti", "Heard Island and McDonald Islands", "Honduras", "Hong Kong", "Hungary",
	    "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Jamaica",
	    "Japan", "Jordan", "Kazakhstan", "Kenya", "Kiribati", "Kuwait", "Kyrgyzstan", "Laos",
	    "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg",
	    "Macau", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands",
	    "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova",
	    "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Namibia",
	    "Nauru", "Nepal", "Netherlands", "Netherlands Antilles", "New Caledonia", "New Zealand",
	    "Nicaragua", "Niger", "Nigeria", "Niue", "Norfolk Island", "North Korea", "Northern Marianas",
	    "Norway", "Oman", "Pakistan", "Palau", "Panama", "Papua New Guinea", "Paraguay", "Peru",
	    "Philippines", "Pitcairn Islands", "Poland", "Portugal", "Puerto Rico", "Qatar",
	    "Reunion", "Romania", "Russia", "Rwanda", "Sqo Tome and Principe", "Saint Helena",
	    "Saint Kitts and Nevis", "Saint Lucia", "Saint Pierre and Miquelon",
	    "Saint Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia", "Senegal",
	    "Seychelles", "Sierra Leone", "Singapore", "Slovakia", "Slovenia", "Solomon Islands",
	    "Somalia", "South Africa", "South Georgia and the South Sandwich Islands", "South Korea",
	    "Spain", "Sri Lanka", "Sudan", "Suriname", "Svalbard and Jan Mayen", "Swaziland", "Sweden",
	    "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "The Bahamas",
	    "The Gambia", "Togo", "Tokelau", "Tonga", "Trinidad and Tobago", "Tunisia", "Turkey",
	    "Turkmenistan", "Turks and Caicos Islands", "Tuvalu", "Virgin Islands", "Uganda",
	    "Ukraine", "United Arab Emirates", "United Kingdom",
	    "United States", "United States Minor Outlying Islands", "Uruguay", "Uzbekistan",
	    "Vanuatu", "Vatican City", "Venezuela", "Vietnam", "Wallis and Futuna", "Western Sahara",
	    "Yemen", "Yugoslavia", "Zambia", "Zimbabwe"
	  };
 
	private void validate(View v){
	}
 
	private void cancel(View v){
	}
 
	private void getInterfaceElement(){		
		//R.id.Button01
		okButton = (Button)findViewById(R.id.Button01);
		if(okButton != null){
			okButton.setOnClickListener(new View.OnClickListener() {
				public void onClick(View v) {
					validate(v);
				}
			});
		}
 
		cancelButton = (Button)findViewById(R.id.Button02);
 
		if(cancelButton != null){
			cancelButton.setOnClickListener(new View.OnClickListener() {
				public void onClick(View v) {
					cancel(v);
				}
			});
		}
 
		listView = (ListView)findViewById(R.id.ListView01);
		if(okButton != null)	listView.addFooterView(okButton);
		if(cancelButton != null)	listView.addFooterView(cancelButton);
		listView.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES));
 
		listView.setTextFilterEnabled(true);
		listView.clearChoices();
		listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
		listView.setDividerHeight(1);
 
		listView.setOnItemClickListener(new OnItemClickListener() {
		    public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
		      // When clicked, show a toast with the TextView text
		      Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
		          Toast.LENGTH_SHORT).show();
		    }
		  });
 
 
	}
 
    @Override
    //application start
    public void onCreate(Bundle savedInstanceState) {
    	super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        getInterfaceElement();
    }
 
    //application end
    public void onDestroy(){
    	super.onDestroy();
    }
 
}
main.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
 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:orientation="vertical"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent">
		<TextView android:id="@+id/TextView01"
		    	  android:layout_width="fill_parent" 
		    	  android:layout_height="wrap_content" 
		    	  android:text="@string/hello"/>
 
		<ListView android:id="@+id/ListView01" 
				  android:layout_width="fill_parent"
				  android:layout_height="wrap_content"/>
 
		<Button android:text="OK"
				android:id="@+id/Button01"
				android:layout_width="150px"
				android:layout_height="50px"/>
		<Button android:text="Cancel" 
				android:id="@+id/Button02"
				android:layout_width="150px"
				android:layout_height="50px"/>
</LinearLayout>
list_item.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
<?xml version="1.0" encoding="utf-8"?>
	<TextView xmlns:android="http://schemas.android.com/apk/res/android"
	    			  android:layout_width="fill_parent"
	    			  android:layout_height="fill_parent"
	    			  android:padding="10dp"
	    			  android:textSize="16sp" >
	</TextView>
J'ai bien sur essayer de le faire en ListActivity. Cependant le :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
listView = (ListView)findViewById(R.id.ListView01);
ne marche pas(me revoie null) et doit être remplacer par un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
listView = this.getListView();
De plus pour boutons avec une ListActivity le code suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
okButton = (Button)findViewById(R.id.Button01);
me renvoie à chaque fois null.

Comment bien faire?