0

私が欲しいのは、スピナー1と2のようにスピナー内に表示されるとき、スピナーのテキストの色は実行時に白でなければならず、スピナーのリストのテキストの色は写真のように黒でなければなりません。

問題は、最初の 2 つのスピナーでは実行できますが、3 番目と 4 番目のスピナーでは実行できないことです。

3 番目と 4 番目のスピナーに値がありますが、黒で表示されていることがわかります。2 つのスピナーで可能であれば、4 つすべてではないということを理解できません。助けてください。

ここに画像の説明を入力 ここに画像の説明を入力

これは、実行時に色を変更する私のコードです:

public class Text                  // class for changing the text color of spinner
{
    private TextView tv = null;
    Text(View spin_adptr)
    {

        tv = (TextView) spin_adptr.findViewById(R.id.textspin);
        tv.setTextColor(Color.WHITE);
    }
}

そして、これが私がそれを呼んでいる方法です:

public void onItemSelected(AdapterView<?> parent, View arg1, int position,
        long arg3) {
    int id = parent.getId();
    Text text = new Text(spinner1);   //Change of color (Working)
            Text text1 = new Text(spinner3);  //Change of Color(ERROR)
            Text text2 = new Text(spinner4);  //Change of Color(ERROR)



    switch (id) {
    case R.id.spinner1:

        String b = spinner1.getSelectedItem().toString();

        if (b != null) {
            dbCarHelper.make_pop(b);
        }



        List<String> lb = h.getAllLabels();

        ArrayAdapter<String> dAdapter = new ArrayAdapter<String>(this,
                R.layout.spin_adptr,lb);

        dAdapter.setDropDownViewResource(R.layout.spin_adptr);
        spinner2.setAdapter(dAdapter);

        break;

    case R.id.spinner2:
        Text text1 = new Text(spinner2);   //// Change of color (working)
        String a = spinner2.getSelectedItem().toString();

        if (a != null) {
            dbCarHelper.m_pop(a);
        }

        CarHelper c = new CarHelper(getApplicationContext());

        List<String> lable = c.getAllLabel();

        ArrayAdapter<String> dAdaptr = new ArrayAdapter<String>(this,
                R.layout.spin_adptr,lable);

        dAdaptr.setDropDownViewResource(R.layout.spin_adptr);

        spinner3.setAdapter(dAdaptr);


        break;

    }

    }
4

1 に答える 1

6

spinner_layout という名前の xml ファイルを作成し、以下のようにコードを記述します。

  <?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:layout_width="fill_parent"
android:layout_height="48dp"
android:gravity="center_vertical"
android:paddingLeft="4dp"
android:textSize="18sp"
android:textColor="#FFFFFF"
android:ellipsize="marquee"
android:singleLine="true" />

spinner_dropdown という名前の別の xml を作成し、以下のコードを記述します。

 <?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:layout_width="fill_parent"
android:layout_height="48dp"
android:gravity="center_vertical"
android:paddingLeft="4dp"
android:textSize="18sp"
android:textColor="#000000"
android:ellipsize="marquee"
android:singleLine="true" />

以下のようにコードを更新します

ArrayAdapter<String> dAdapter = new ArrayAdapter<String>(this,
            R.layout.spinner_layout,lb);

    dAdapter.setDropDownViewResource(R.layout.spinner_dropdown);
于 2013-04-19T09:54:52.670 に答える