自定义控件"/>
Android开发之自定义控件
效果图:
布局文件:
核心代码:
public class MainActivity extends Activity {private EditText et_name;private ImageView spinner;private ArrayListqqName;private PopupWindow pop;private MyAdapter adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initData();initView();}private void initData() {//qq账号qqName = new ArrayList();for (int i = 10000; i < 10020; i++) {qqName.add(i+"");}}private void initView() {et_name = (EditText) findViewById(R.id.et_name);spinner = (ImageView) findViewById(R.id.spinner);//当点击右边的倒三角图标时,就在输入框下边显示一个PopupWindowspinner.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {//下拉列表显示ListView listView = new ListView(getApplicationContext());adapter = new MyAdapter();listView.setAdapter(adapter);listView.setCacheColorHint(0x00000000);//隐藏listView的滚动条listView.setVerticalScrollBarEnabled(false);pop = new PopupWindow(listView, et_name.getWidth(), LayoutParams.WRAP_CONTENT, true);//设置·背景色pop.setBackgroundDrawable(new ColorDrawable(0x00000000));//透明色pop.showAsDropDown(et_name, 0, 0);}});}private class MyAdapter extends BaseAdapter {@Overridepublic int getCount() {// TODO Auto-generated method stubreturn qqName.size();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn qqName.get(position);}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(final int postion, View convertView, ViewGroup parent) {//加载布局//View view = View.inflate(getApplicationContext(), R.layout.item, null);//inflater.inflate(resource, parent) 共同与上面方法LayoutInflater inflater = LayoutInflater.from(getApplicationContext());View view = inflater.inflate(R.layout.item, parent, false);//----------------------TextView title = (TextView) view.findViewById(R.id.title);ImageButton delete = (ImageButton) view.findViewById(R.id.delete);//设置QQ号码title.setText(qqName.get(postion));title.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {//设置显示点击的qq号码et_name.setText(qqName.get(postion));pop.dismiss();}});delete.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {qqName.remove(postion);adapter.notifyDataSetChanged();}});return view;}}}
更多推荐
Android开发之自定义控件
发布评论