最近登录的效果下拉列表

来源:互联网 发布:js 双引号字符转义 编辑:程序博客网 时间:2024/05/17 05:02

相信大家都有使用QQ的最近的登录的下拉框,点击可以显示最近登录的效果,点击选项可以将内容提交到输入框,实现快速输入数据的效果。

<span style="font-size:18px;">packagecomflyou.down.select;
 
importjava.util.ArrayList;
 
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.renderscript.Type.CubemapFace;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.view.ViewGroup;
importandroid.widget.BaseAdapter;
importandroid.widget.EditText;
importandroid.widget.ImageView;
importandroid.widget.ListView;
importandroid.widget.PopupWindow;
importandroid.widget.TextView;
 
publicclass MainActivity extendsActivity {
  privateEditText msg;
  privateImageView image;
  privatePopupWindow popupWindow;
  privateArrayList<string> dataList;
  privateListView myListview;
 
  @Override
  protectedvoid onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    msg = (EditText) findViewById(R.id.tv_msg);
    image = (ImageView) findViewById(R.id.iv_down_arrow);
    myListview = newListView(MainActivity.this);
    popupWindow = newPopupWindow(getApplicationContext());
    // 填充数据
    dataList = newArrayList<string>();
    for(inti = 0; i < 20; i++) {
      dataList.add(flyou + i);
    }
    // 初始化数据
    init();
    // 初始化lictview
    initListView();
  }
 
  privatevoid init() {
 
    image.setOnClickListener(newOnClickListener() {
      @Override
      publicvoid onClick(View v) {
        // 设置PopupWindow的宽度
        popupWindow.setWidth(msg.getWidth());
        // 设置PopupWindow的高度
        popupWindow.setHeight(300);
        popupWindow.setContentView(myListview);
 
        popupWindow.setOutsideTouchable(true);
        popupWindow.showAsDropDown(msg,0,0);
      }
    });
 
  }
 
  privatevoid initListView() {
 
    myListview.setBackgroundResource(R.drawable.listview_background);// 设置listView
                                                                      // 背景
    myListview.setDivider(null);// 设置条目之间的分隔线为null
    myListview.setVerticalScrollBarEnabled(false);// 关闭
    myListview.setAdapter(newMyAdapter());
 
  }
 
  publicclass MyAdapter extendsBaseAdapter {
 
    @Override
    publicint getCount() {
      returndataList.size();
    }
 
    @Override
    publicObject getItem(intposition) {
      returnposition;
    }
 
    @Override
    publiclong getItemId(intposition) {
      return0;
    }
 
    @Override
    publicView getView(finalint position, View convertView, ViewGroup parent) {
      ViewHolder holder;
      if(convertView == null) {
        convertView = View.inflate(getApplicationContext(), R.layout.list_item, null);
        holder = newViewHolder();
        holder.iv_delete = (ImageView) convertView.findViewById(R.id.iv_delete);
        holder.iv_user = (ImageView) convertView.findViewById(R.id.iv_user);
      holder.tv_msg=(TextView)convertView.findViewById(R.id.tv_msg);
        convertView.setTag(holder);
      }else{
 
        holder = (ViewHolder) convertView.getTag();
 
      }
       
      holder.tv_msg.setText(dataList.get(position));
      holder.iv_delete.setOnClickListener(newOnClickListener() {
 
        @Override
        publicvoid onClick(View v) {
          // 移除数据
          dataList.remove(position);
          //更新listview
          MyAdapter.this.notifyDataSetChanged();
        }
      });
      convertView.setOnClickListener(newOnClickListener() {
 
        @Override
        publicvoid onClick(View v) {
          msg.setText(dataList.get(position));
          popupWindow.dismiss();
        }
 
      });
      returnconvertView;
    }
 
   
  }
 //数据缓存
  privateclass ViewHolder {
    ImageView iv_delete;
    TextView tv_msg;
    ImageView iv_user;
 
  }
 
}
</string></string></span>
0 0
原创粉丝点击