将微调器项目的颜色更改为2种颜色

时间:2013-02-03 21:59:30

标签: android android-spinner android-dialogfragment

我填充了 Spinner ,它出现在 DialogFragment 中,有两个列表 - list1 list2 。我希望列表以两种不同的颜色显示:即下拉列表中的list1为蓝色,list2为红色。 我怎样才能动态实现这个目标?

public class AlertDialogFragment extends DialogFragment {

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    // Use the Builder class for convenient dialog construction
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    LayoutInflater inflater = getActivity().getLayoutInflater();

    View view = inflater.inflate(R.layout.dialog, null);

    Spinner spin;
    spin = (Spinner)view.findViewById(R.id.spinner1);

    List<String> list = new ArrayList<String>();
    list.add("Material 1");
    list.add("Material 2");
    list.add("Material 3");
    list.add("Material 4");
    list.add("Material 5");
    list.add("Material 6");

    //Second List
    List<String> list2 = new ArrayList<String>();
    list2.add("Mat 7");
    list2.add("Mat 8");
    list2.add("Mat 9");

    //Combined List
    List<String> listCombine = new ArrayList<String>();
    listCombine.addAll(list);
    listCombine.addAll(list2);

    ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getActivity(),
            android.R.layout.simple_spinner_item, listCombine); 

    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    spin.setAdapter(dataAdapter);

    builder
    .setTitle("Title")
    .setView(view)
    .setPositiveButton("Add", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   // FIRE ZE MISSILES!
               }
           })
           .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int id) {
                   // User cancelled the dialog
               }
           });
    // Create the AlertDialog object and return it
    return builder.create();
}
}

1 个答案:

答案 0 :(得分:0)

最可靠的方法是创建一个自定义适配器以使用两种不同的布局:一种红色和一种蓝色。您需要覆盖以下三种方法:

或者您可以自行覆盖getDropDownView()以更改相应的颜色。