package com.android.example;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;
public class SpinnerActivity extends Activity implements OnItemSelectedListener {
private ICSAdapter mAdapter;
private String[] mNameList = {"one","two","three" };
Context context=this;
Spinner room_type;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.spinner_activity_main);
room_type = (Spinner) findViewById(R.id.ics_spinner);
mAdapter = new ICSAdapter(context, mNameList);
room_type.setAdapter(mAdapter);
room_type.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> Adapter, View view,
int position, long id) {
room_type.setSelection(position);
View selectedText = (View) Adapter.getChildAt(position);
if (selectedText != null) {
RelativeLayout real = (RelativeLayout) selectedText.findViewById(R.id.real);
TextView selected = (TextView) selectedText.findViewById(R.id.name_view);
selected.setText(mNameList[position].toUpperCase());
((View) selected.getParent()).setBackgroundColor(Color.TRANSPARENT);
// real.setBackgroundColor(Color.TRANSPARENT);
}
}
@Override
public void onNothingSelected(AdapterView<?> Adapter) {
// TODO Auto-generated method stub
}
});
}
public class ICSAdapter extends BaseAdapter {
private LayoutInflater inflater;
private Context context;
String[] room_type;
public ICSAdapter(Context context, String[] _accidentList) {
this.room_type = _accidentList;
this.context = context;
inflater = (LayoutInflater) this.context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return room_type.length;
}
@Override
public Object getItem(int position) {
return room_type[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder;
convertView = inflater.inflate(R.layout.drop_down_view, null);
holder = new ViewHolder();
holder.spinnerText = (TextView) convertView.findViewById(R.id.name_view);
holder.spinnerText.setText(room_type[position]);
return convertView;
}
public class ViewHolder {
TextView spinnerText;
}
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg"
android:layout_gravity="center"
>
<Spinner
android:id="@+id/ics_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_alignParentTop="true"
android:background="@drawable/text3"
/>
</RelativeLayout>
dropdown.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/real"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#2D333C" >
<TextView
android:id="@+id/name_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="324"
android:textColor="@color/android:white"
android:textSize="18sp" />
</RelativeLayout>
这里我使用默认微调器和一些背景图像。我有一个问题,当我点击微调器时,下拉列表将显示为白色背景。但不会显示原始颜色背景(android:background =“#2D333C”) 我正在使用透明颜色进行背景更改。如何解决此问题。当我点击下拉列表中的微调器时,我想显示给定的背景颜色。选择所选值后,背景将会透明。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:2)
在可绘制文件夹中创建一个自定义文件。
<强> mybackground.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:drawable="@color/yourcolorName" />
<item android:drawable="@android:color/transparent" />
</selector>
现在将此文件设置为您的Spinner。
<Spinner
android:id="@+id/ics_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_alignParentTop="true"
android:background="@drawable/mybackground"
/>