您的位置:首页 > 移动开发 > Android开发

android AutoCompleteTextView和Spinner选中项加亮

2016-04-06 23:35 561 查看
package com.example.spinnerexample;

import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnFocusChangeListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.ImageView;
import android.widget.Spinner;
import android.widget.TextView;

public class MainActivity extends Activity {
private Spinner spinner;
private TextView tv;
private static final String[] m = { "A型", "B型", "O型", "AB型", "其他" };

private AutoCompleteTextView at1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) this.findViewById(R.id.textView1);
at1 = (AutoCompleteTextView) this.findViewById(R.id.at1);

spinner = (Spinner) this.findViewById(R.id.spinner1);

/*
* ArrayAdapter<String> adapter = new
* ArrayAdapter<String>(this,R.layout.spinner, m){
*
* @Override public View getDropDownView(int position, View convertView,
* ViewGroup parent) { if(convertView==null){ convertView =
* getLayoutInflater().inflate(R.layout.spinner_item, parent, false); }
* TextView label = (TextView) convertView.findViewById(R.id.label);
* label.setText(getItem(position)); if
* (spinner.getSelectedItemPosition() == position)
* label.setTextColor(Color.RED); //ImageView icon = (ImageView)
* convertView.findViewById(R.id.icon);
* //icon.setVisibility(spinner.getSelectedItemPosition() ==
* position?View.VISIBLE:View.INVISIBLE);
*
* return convertView; } };
*/
ArrayAdapter<String> adapter1 = new  ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,m){
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
TextView label = (TextView) super.getView(position,
convertView, parent);

if (at1.getText().toString().indexOf(m[position])==0) {
label.setTextColor(Color.RED);

}else{
label.setTextColor(Color.BLACK);
}
return label;
}
};
at1.setAdapter(adapter1);

at1.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
AutoCompleteTextView view = (AutoCompleteTextView) v;
if (hasFocus) {
view.showDropDown();
}
}
});

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, m) {
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) {
TextView label = (TextView) super.getView(position,
convertView, parent);

if (spinner.getSelectedItemPosition() == position) {
label.setTextColor(Color.RED);
label.setVisibility(View.VISIBLE);
}
return label;
}
};
spinner.setAdapter(adapter);

spinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub

}

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

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

// 使用数组形式操作
class SpinnerSelectedListener implements OnItemSelectedListener {

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
tv.setText("你的血型是:" + m[arg2]);

}

public void onNothingSelected(AdapterView<?> arg0) {
}
}

}


补充SpinnerArrayAdapter类

调用方法如下

方法1:
     List<String> list = new ArrayList<String>();
list.add("新增");
list.add("已确认");
ArrayAdapter<String> aAdapter = new SpinnerArrayAdapter<String>(this,R.layout.spinner_dropdownlist_item, R.id.text,list,txtstatus);
aAdapter.setDropDownViewResource(R.layout.spinner_dropdownlist_item);
txtstatus.setAdapter(aAdapter);


方法2:
ArrayAdapter<String> tblproductionperiod_adapter = new SpinnerArrayAdapter<String>(this,R.layout.spinner_item, R.id.text,tblproductionperiod_list ,txtperiod);
tblproductionperiod_adapter.setDropDownViewResource(R.layout.spinner_dropdownlist_item);
txtperiod.setAdapter(tblproductionperiod_adapter);


package eip.util;

import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import java.util.List;

import eip.frame.R;
import eip.module.IPOProgressActivity;

public class SpinnerArrayAdapter<T> extends ArrayAdapter {
private  Spinner spinner;
public SpinnerArrayAdapter(Context context, int resource, int textViewResourceId,  List<T>  list ,Spinner zspinner) {
super(context ,resource,textViewResourceId,list);
this.spinner = zspinner;
}
@Override
public View getDropDownView(int position, View convertView,
ViewGroup parent) {

if(convertView==null){
convertView = ((Activity)this.getContext()).getLayoutInflater().inflate(R.layout.spinner_dropdownlist_item, parent, false);
}

TextView label = (TextView) super.getView(position,
convertView, parent).findViewById(R.id.text);

if (this.spinner.getSelectedItemPosition() == position) {
label.setTextColor(Color.GREEN);
}
return convertView;
}
}

http://blog.csdn.net/i_lovefish/article/details/17337999 http://www.jb51.net/article/49133.htm http://www.tuicool.com/articles/uYBrie http://www.it1352.com/124657.html http://gundumw100.iteye.com/blog/1773670
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: