2

プログラムでスピナーのテキストサイズを動的に設定しようとしています。以下のコードを使用しています。テキストのサイズは変更されますが、何らかの理由で、データベースの値が異なり、setSelection メソッドを使用してデータベースに基づいて選択を更新しているにもかかわらず、スピナーは常にインデックス 0 の項目を表示します。以下は私のコードです。私は何か間違ったことをしていますか?

    mAutoBackup = (Spinner) findViewById(R.id.auto_backup);
    final CharSequence [] autoBackupValues = getResources().getStringArray(R.array.auto_backup_options); 
    // Create an ArrayAdapter using the string array and a default spinner layout
    ArrayAdapter<CharSequence> adapter = new ArrayAdapter<CharSequence>(this,
            R.layout.spinner_header, autoBackupValues){
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View v = super.getView(position, convertView, parent);
            if (v instanceof TextView)
                ((TextView) v).setTextSize(TypedValue.COMPLEX_UNIT_PX, normalTextSize);
            return v;
        }
        @Override
        public View getDropDownView(int position, View convertView,
                ViewGroup parent) {
            View v = super.getDropDownView(position, convertView, parent);
            if (v instanceof TextView)
                ((TextView) v).setTextSize(TypedValue.COMPLEX_UNIT_PX, normalTextSize);
            return v;
        }
    };
    // Specify the layout to use when the list of choices appears
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    // Apply the adapter to the spinner
    mAutoBackup.setAdapter(adapter);


<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/spinner_header"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:gravity="left"
   android:textSize="22sp"
   android:textColor="@android:color/black" >
</TextView>
4

1 に答える 1

0

問題が見つかりました。コードの流れにエラーがあったため、スピナーに値を設定した後、アダプターを作成してスピナーに設定する上記のコードを再度呼び出していました。その流れを修正し、世界は緑です....

于 2012-11-15T18:24:32.707 に答える