Spinner con texto largo no funciona bien

Tengo algunos problemas con la ruleta. Dependiendo de mis fechas, debo agregar a un TableRow un TextView con un EditText o un Spinner . Mi matriz que debe mostrarse en Spinner es un poco larga. He probado mi código con una matriz con textos cortos, y se ve así:

Introduzca aquí la descripción de la imagen

Aquí el único problema es que el spinner no es fill_parent .

Si pongo mi array a spinner se ve así:

Introduzca aquí la descripción de la imagen

En este caso, la hiladora no se ve como un hilandero y el EditarTexto ya no es visible. Cuando elijo la ruleta, aparece esta vista:

Introduzca aquí la descripción de la imagen

Aquí necesito mostrar todo el texto de la matriz. Este es mi código:

 TableRow.LayoutParams lp = new TableRow.LayoutParams( TableRow.LayoutParams.FILL_PARENT , TableRow.LayoutParams.WRAP_CONTENT); tablerow_product[i] = new TableRow(viewToLoad.getContext()); tablerow_product[i].setLayoutParams(lp); product_spinner[i] = new Spinner(viewToLoad.getContext()); product_spinner[i].setLayoutParams(lp); product_spinner[i].setBackgroundResource(R.drawable.spinner_selector); String[] proba={"red","blue"}; //first image is with this test array ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(viewToLoad.getContext(), com.Orange.R.layout.my_spinner_textview,spinnerArray); spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item); product_spinner[i].setAdapter(spinnerArrayAdapter); tablerow_product[i].addView(product_spinner[i]); Themes_TableLayout.addView(tablerow_product[i],new TableLayout.LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT)); 

Y my_spinner_textview.xml:

 <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" style="?android:attr/spinnerItemStyle" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@drawable/textorange_selected" android:gravity="left" android:singleLine="false" android:ellipsize="end"/> 

¿Puede alguien ayudarme a solucionarlo? Cualquier idea es bienvenida. Gracias por adelantado.

2 Solutions collect form web for “Spinner con texto largo no funciona bien”

Para mi problema encontré esta solución:

 Spinner language = (Spinner) findViewById(com.Orange.R.id.current_language_text); ArrayAdapter adapter = new ArrayAdapter(this, com.Orange.R.layout.my_spinner_textview, languages); adapter.setDropDownViewResource(com.Orange.R.layout.multiline_spinner_dropdown_item); language.setAdapter(adapter); 

Donde languages ​​es una String[] y my_spinner_textview.xml es:

 <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/textview_spinner" style="?android:attr/spinnerItemStyle" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@drawable/textorange_selected" android:paddingLeft="5dp" android:singleLine="true" android:ellipsize="end" /> 

Tengo una idea u puede crear el adaptador de encargo. Siguiendo el código

 class SpinnerAdapter extends ArrayAdapter<String> { Context context; List<String> items; public SpinnerAdapter(final Context context, final int textViewResourceId, List<String> vendor_name) { super(context, textViewResourceId, vendor_name); this.items = vendor_name; this.context = context; } @Override public View getView(int position, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater inflater = LayoutInflater.from(context); convertView = inflater.inflate(android.R.layout.simple_spinner_item, parent, false); } // android.R.id.text1 is default text view in resource of the android. // android.R.layout.simple_spinner_item is default layout in resources of android. TextView tv = (TextView) convertView.findViewById(android.R.id.text1); tv.setText(items.get(position)); tv.setTextColor(Color.BLACK); tv.setTextSize(9); return convertView; } } 

Utilizando esta clase SpinnerAdapter

  • Android: dos problemas con Tablerow + TextView en Tablelayout
  • Android: Tablerow multiline textview recorte verticalmente
  • Problemas de la suma de peso de TableLayout
  • Obtener todos los TableRow en un TableLayout
  • Cómo agregar TableRow de xml a TableLayout mediante programación?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.