5


スピナーのテキストの色の設定に問題があります。いくつかの例を見てきましたが、Spinner のアイテムが SQLite データベースから取得されるため、ほとんどの場合、ArrayAdapter と String 配列が含まれているため、役に立たない可能性がありstrings.xmlます。res folder

ここに私のスピナーのコード PersonalInformation.java があります

public class PersonalInformation extends Activity
{
    EditText txtLikes, txtDislikes, txtType, txtDate;
    Button btnView, btnBack;
    Spinner nameSpinner;    

    final Context context = this;

    private int namesSpinnerId;        

    LikesDBAdapter likeDB = new LikesDBAdapter(this);
    DislikesDBAdapter dlikeDB = new DislikesDBAdapter(this);


    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.info);

        BuddyDBAdapter buddyDB = new BuddyDBAdapter(this);
        buddyDB.open();

        Cursor friendsCursor = buddyDB.getAllNames();
        startManagingCursor(friendsCursor); 

        String[] from = new String[]{BuddyDBAdapter.KEY_NAME};
        int[] to = new int[]{R.id.name};

        SimpleCursorAdapter friendsCursorAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, friendsCursor, from, to);
        friendsCursorAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        nameSpinner = (Spinner)findViewById(R.id.nameSpinner);
        nameSpinner.setAdapter(friendsCursorAdapter);
        //buddyDB.close();


        nameSpinner.setOnItemSelectedListener(new OnItemSelectedListener()
            {
                 @Override
                 public void onItemSelected(AdapterView<?> parent, View view, int pos, long id)
                 {
                     Cursor c = (Cursor)parent.getItemAtPosition(pos);
                     namesSpinnerId = c.getInt(c.getColumnIndexOrThrow(BuddyDBAdapter.KEY_ROWID));
                 }

                @Override
                public void onNothingSelected(AdapterView<?> parent)
                {
                    // TODO Auto-generated method stub

                }
            });
        buddyDB.close();

そして、これらは info.xml 内の Spinner のレイアウト コードです。

<Spinner
        style="@style/SpinnerStyle"
        android:id="@+id/nameSpinner"        
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:prompt="@string/friends_prompt"
        android:textColor="@color/green" />

スピナーでアイテムのテキストの色を設定する方法を教えてください。
提供されたヘルプに感謝します。ありがとう。!=)

4

4 に答える 4

9

スピナー アイテムの xml ファイルを作成します。レイアウトフォルダに入れます

spinner_view.xml:


<TextView  
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content"
  android:gravity="left"  
  android:textColor="@color/green"         
/>

そして最後にあなたのコードで。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.spinner_view,yourList);
于 2012-09-21T05:44:27.403 に答える
2

カスタムArrayAdapterまたはカスタムスピナーを使用します。

http://www.coderzheaven.com/2011/02/20/how-to-create-custom-layout-for-your-spinner-in-android-or-customizable-spinner-2/を見たことがありますか?

于 2012-09-21T05:52:30.697 に答える
0

これは simple_spinner_drowdown_item.xml のソースコードです

<?xml version="1.0" encoding="utf-8"?>
<!--
/* //device/apps/common/assets/res/any/layout/simple_spinner_item.xml
**
** Copyright 2008, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License"); 
** you may not use this file except in compliance with the License. 
** You may obtain a copy of the License at 
**
**     http://www.apache.org/licenses/LICENSE-2.0 
**
** Unless required by applicable law or agreed to in writing, software 
** distributed under the License is distributed on an "AS IS" BASIS, 
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
** See the License for the specific language governing permissions and 
** limitations under the License.
*/
-->
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1"
    style="?android:attr/spinnerDropDownItemStyle"
    android:singleLine="true"
    android:layout_width="match_parent"
    android:layout_height="?android:attr/dropdownListPreferredItemHeight"
    android:ellipsize="marquee"
    android:textAlignment="inherit"/>

ここでの問題は ?android:attr/dropdownListPreferredItemHeight は公開されていませんが、48 ディップまたは 64 ディップのようです :

于 2014-05-14T16:31:11.723 に答える
0

テキストの色を変更する res/layout フォルダーに新しい xml ファイルを作成する

<TextView android:id="@+id/spinnerText" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true"
    android:textColor="#2f4f4f" 
    android:textSize="20dp" 
    xmlns:android="http://schemas.android.com/apk/res/android"/>

そして、次のようにアダプタを呼び出します:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                R.array.spinner_array,
                R.layout.spinner_text);
于 2012-09-21T05:46:55.013 に答える