"ArrayAdapter requiere que el identificador de recurso sea un TextView" xml problems
Estoy recibiendo un error al intentar establecer mi vista para mostrar el ListView
para el archivo que quiero mostrar (archivo de texto). Estoy bastante seguro de que tiene algo que ver con el xml. Sólo quiero mostrar la información de this.file = fileop.ReadFileAsList("Installed_packages.txt");
. Mi código:
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 :
- ¿Hay una manera más simple / mejor de poner una frontera / contorno alrededor de mi TextView?
- Cómo convertir una imagen en cadena base64
- ImageView src con el selector extraíble ignora el estado habilitado
- Girar ImageView verticalmente
- Iconos del centro solamente (no texto también) horizontal y vertical en un botón
<?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>
- Variables en los recursos XML: pasa valores de padres a hijos
- Organizar Strings.xml
- Ellipsize no funciona para textView dentro de listView personalizado
- cómo hacer que el diseño haga clic de forma programable
- Android ¿Es posible definir un mapa en un archivo XML?
- Color Estado Lista no reconocida en forma Drawable
- ¿Cuál es el espacio de nombres XML para Android de la aplicación?
- ¿Es posible crear un VectorDrawable desde el sistema de archivos (archivo * .xml)
El ArrayAdapter requiere que la ID del recurso sea una excepción TextView XML significa que no proporciona lo que espera el ArrayAdapter
. Cuando utiliza este constructor:
new ArrayAdapter<String>(this, R.layout.a_layout_file, this.file)
R.Layout.a_layout_file
debe ser el id de un archivo de diseño xml que contenga solo un TextView
(el TextView
no puede ser envuelto por otro diseño, como LinearLayout
, RelativeLayout
, etc.), algo así:
<?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="wrap_content" // other attributes of the TextView />
Si desea que su diseño de fila de lista sea algo un poco diferente, entonces un simple widget de TextView
usará este constructor:
new ArrayAdapter<String>(this, R.layout.a_layout_file, R.id.the_id_of_a_textview_from_the_layout, this.file)
Donde se proporciona el id
de un diseño que puede contener varias vistas, pero también debe contener un TextView
con e id
(el tercer parámetro) que pasa a su ArrayAdapter
para que pueda saber dónde poner las Strings
en el diseño de la fila.
Sución está aquí
Listitem.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/textview" android:layout_width="match_parent" android:layout_height="match_parent" > </TextView> </LinearLayout>
Código Java:
String[] countryArray = {"India", "Pakistan", "USA", "UK"}; ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.listitem,R.id.textview, countryArray); ListView listView = (ListView) findViewById(R.id.listview); listView.setAdapter(adapter);
- ¿Cómo crear PDFs en una aplicación para Android?
- ¿Cómo obtiene un objeto Drawable de un id de recurso en el paquete android?