“ArrayAdapter nécessite l'ID de ressource pour être un TextView” xml problèmes
J'obtiens une erreur lorsque vous tentez de définir mon point de vue pour afficher le ListView
pour le fichier que je veux afficher(fichier texte). Je suis assez sûr qu'il a quelque chose à voir avec le xml. Je veux juste afficher les informations de this.file = fileop.ReadFileAsList("Installed_packages.txt");
. Mon code:
public class Main extends Activity {
private TextView tv;
private FileOperations fileop;
private String[] file;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.fileop = new FileOperations();
this.file = fileop.ReadFileAsList("Installed_packages.txt");
setContentView(R.layout.main);
tv = (TextView) findViewById(R.id.TextView01);
ListView lv = new ListView(this);
lv.setTextFilterEnabled(true);
lv.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, this.file));
lv.setOnItemClickListener(new AdapterView.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();
}
});
setContentView(lv);
}
}
list_item.xml :
<?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"
android:padding="10dp"
android:textSize="16sp"
android:textColor="#000">
</LinearLayout>
main.xml :
<?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"
android:weightSum="1">
<ScrollView
android:id="@+id/SCROLLER_ID"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
android:fillViewport="true">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="5sp"
android:id="@+id/TextView01"
android:text="@string/hello"/>
</ScrollView>
</LinearLayout>
Vous devez vous connecter pour publier un commentaire.
La ArrayAdapter nécessite l'ID de ressource pour être un TextView XML exception signifie que vous ne fournissez pas ce que le
ArrayAdapter
attend. Lorsque vous utilisez ce constructeur:R.Layout.a_layout_file
doit être l'id d'un xml fichier de mise en page ne contenant qu'unTextView
(leTextView
ne peut pas être enveloppé par une autre structure, comme unLinearLayout
,RelativeLayout
etc!), quelque chose comme ceci:Si vous voulez que votre liste de lignes de mise en page pour être quelque chose d'un peu différent d'une simple
TextView
widget utilisation de ce constructeur:où vous fournir le
id
d'une mise en page qui peut contenir divers points de vue, mais aussi doit contenir unTextView
avec etid
(le troisième paramètre) que vous transmettez à votreArrayAdapter
de sorte qu'il peut savoir où mettre lesStrings
dans la ligne de mise en page.new ArrayAdapter<String>(this, R.layout.a_layout_file, R.id.a_text_view_within_layout, this.file)
Voir javadoc pourandroid.widget.ArrayAdapter
Soution est ici
listitem.xml
De code Java :
Si vous obtenez ce message lorsque vous étendez un ArrayAdapter, vous obtenez cette erreur, parce que vous n'avez pas fourni la bonne id de ressource pour afficher l'élément. Appel de la super-classe dans le constructeur et passer l'id de la ressource de la TextView:
Adaptateur: