2

スピナーについて、またスピナーのテキスト サイズとスピナーのテキストの色を変更する方法を知りたいです。

4

2 に答える 2

6

Android では、Spinner は単なるコンボ ボックスまたはリスト ボックスです。

複数のアイテムを表示したり、リストから 1 つのアイテムを選択したりできます。

XML コードを次のように編集します

<Spinner android:id="@+id/Spinner01"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content" />

Java クラス コードは次のようになります。

public class SpinnerExample extends Activity { 
   private String array_spinner[];
   @Override
   public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main);
     array_spinner=new String[5];
     array_spinner[0]="1";
     array_spinner[1]="2";
     array_spinner[2]="3";
     array_spinner[3]="4";
     array_spinner[4]="5";
     Spinner s = (Spinner) findViewById(R.id.Spinner01);
     ArrayAdapter adapter = new ArrayAdapter(this,
     android.R.layout.simple_spinner_item, array_spinner);
     s.setAdapter(adapter);
   }
 }

出力は次のようになります

ここに画像の説明を入力

このサイトでは、ソース コードのサンプル スクリーン ショットを提供しています
http://www.androidpeople.com/android-spinner-example

一般に、単純なアダプターを使用してテキストサイズまたはテキストカラーを編集することはできません。最初のxmlファイルで、スピナーを宣言し、最初にspinnername.findviewbyid(id)で見つけたjavaファイルを宣言します。xmlファイルを使用してカスタムアダプターを作成するだけです。つまり、最初に2番目のxmlファイルを作成しますtextview、images などの要件を指定します。textview で textcolor と textsize を指定し、次に Java で customadapterfile を作成し、カスタム アダプターのレイアウト インフレータを介してその xml ファイルをインフレートし、最後にそのアダプターを spinner.Your に渡します。カスタム表示スピナーが作成されます。

テキストサイズ、テキストカラー、画像などを設定するカスタムビューの例:-

これで連絡先リストが作成され、カスタム アダプターを使用して、contactadapter ファイルの xml ファイルの下にインフレートします

xml ファイル :-

<TextView android:text="Name:" android:id="@+id/tvNameCustomContact"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:layout_marginLeft="10dip" android:textColor="@color/darkcherryred" 
    />
<TextView android:id="@+id/tvNumberCustomContact" android:layout_width="wrap_content"
    android:layout_height="wrap_content"  
     android:text="Number:" android:textColor="@color/DarkGrey" android:paddingLeft="10dip"
     android:layout_below="@+id/tvNameCustomContact" 
     />
<TextView android:text="Group:" android:id="@+id/tvGroupCustomContact"
    android:layout_width="wrap_content" android:layout_height="wrap_content" 
     android:textColor="@color/darkcherryred"   android:paddingLeft="10dip"
     android:layout_below="@+id/tvNumberCustomContact"/>

カスタム アダプター ファイル:-

import java.util.ArrayList;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageButton;
import android.widget.TextView;

public class ContactAdapter extends BaseAdapter 
{


private ArrayList<String> name=new ArrayList<String>();
private ArrayList<String> number=new ArrayList<String>();
private ArrayList<String> group=new ArrayList<String>();

private LayoutInflater mInflater;
public ContactAdapter(Context context,  ArrayList<String> name,ArrayList<String> number,ArrayList<String> group1) 
{
    this.mInflater = LayoutInflater.from(context);
    this.name=name;
    this.number=number;
    this.group=group1;
}

public int getCount() {
    return this.name.size();
}

public Object getItem(int position) {
    return position;
}

public long getItemId(int position) {
    return position;
}

public View getView(int position, View convertView, ViewGroup parent) 
{
    final ViewHolder holder;
    if (convertView == null) 
    {
        convertView = mInflater.inflate(R.layout.contactcustomlist, null);
        holder = new ViewHolder();
        holder.Name = (TextView) convertView.findViewById(R.id.tvNameCustomContact);
        holder.Number= (TextView) convertView.findViewById(R.id.tvNumberCustomContact);
        holder.Group= (TextView) convertView.findViewById(R.id.tvGroupCustomContact);
        convertView.setTag(holder);
    } 
    else 
    {
        holder = (ViewHolder) convertView.getTag();
    }





    holder.Name.setText    ("Name :      "+name.get(position));
    holder.Number.setText("Numbers : "+number.get(position));
    holder.Group.setText   ("Group :      "+group.get(position));


    return convertView;

}
class ViewHolder {
    TextView Name;
    TextView Number;
    TextView Group;

}

}

スピナーが定義されている firstxml ファイルを作成すると仮定し、最後に firstjava ファイルに、カスタム アダプターを渡すスピナーのコードを追加するだけです。

ContactAdapter contactadapter = new ContactAdapter(this, NameA, MobileA, group);//NameA,MobileA,Group is a arraylist in which we pass the values from main java file to ContactAdapter java file
Spinner spinner= (Spinner)findviewbyid(R.id.spinnername);
spinner.setAdapter(contactadapter);
于 2011-03-12T10:49:05.250 に答える
1

hello-spinner チュートリアルは非常に便利です。

http://developer.android.com/guide/tutorials/views/hello-spinner.html

新しい XML ファイルをレイアウト フォルダーに追加します。

android:textColor="#FF8B1500" android:gravity="center"/>

アダプター リソースを新しいレイアウト ファイルに変更します。

adapter = ArrayAdapter.createFromResource(
            this, R.array.sound, R.layout.spinnerLayout);

`

于 2011-03-12T06:57:49.950 に答える