aazam rafiee zade Ответов: 1

Пользовательский спиннер и язык справа налево: проблема с выводом на эмулятор


У меня есть они, но после запуска программы я не вижу никаких выходных данных на эмуляторе.

MySpinnerAdapter.cs
namespace spinnerTest
{
    public class MySpinnerAdapter : ArrayAdapter<String>
    {
        Typeface font = Typeface.CreateFromAsset(Application.Context.Assets, "fonts/MYFONT.TTF");
        public MySpinnerAdapter(Context context, int resource, String[] items)
            : base(context, resource, items)
        {

        }
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            TextView view = (TextView)GetView(position, convertView, parent);
            view.SetTypeface(font, TypefaceStyle.Normal);
            return view;
        }

        public override View GetDropDownView(int position, View convertView, ViewGroup parent)
        {
            TextView view = (TextView)GetDropDownView(position, convertView, parent);
            view.SetTypeface(font, TypefaceStyle.Normal);
            return view;
        }
    }
}


textview_with_padding
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="?android:attr/spinnerItemStyle"
    android:singleLine="true"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:ellipsize="marquee" />


Main.axml
<?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">
    <Spinner
        android:id="@+id/spinner2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>


MainActivity.cs
namespace spinnerTest
{
    [Activity(Label = "spinnerTest", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Main);
            String[] spinnerItems = new String[]{
                "Aa",
                "Bbb",
                "Cccc",
                "Ddddd",
                "Ee",
            };

            Spinner SpinnerWithPadding = (Spinner)FindViewById(Resource.Id.spinner2);
            ArrayAdapter<String> spinnerArrayAdapter = new MySpinnerAdapter(this, Resource.Layout.textview_with_padding, spinnerItems);
            spinnerArrayAdapter.SetDropDownViewResource(Resource.Layout.textview_with_padding);
            SpinnerWithPadding.Adapter = spinnerArrayAdapter;
        }
    }
}


Что я уже пробовал:

У меня нет никакой ошибки, но у меня нет вывода на эмулятор.

1 Ответов

Рейтинг:
6

aazam rafiee zade

Я нашел:
Моя проблема была в MySpinnerAdapter.cs:
Я не использовал базу для GetView (base.GetView) и GetDropDownView (база.GetDropDownView).

TextView view = (TextView)base.GetView(position, convertView, parent);
TextView view = (TextView)base.GetDropDownView(position, convertView, parent);