仿12306

源文件支持交流修改使用

开发语言:

分类:其他系统

    分享到:

源码搜索

  • 详情介绍 - 【仿12306】
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
         
        setContentView(R.layout.station_list);
 
        mStationListView = (ListView) findViewById(R.id.station_list);
        letterListView = (LetterListView) findViewById(R.id.stationLetterListView);
 
        stations = StationUtils.getAllStations(StationListActivity.this);
 
        letterListView
                .setOnTouchingLetterChangedListener(new LetterListViewListener());
 
        alphaIndexer = new HashMap<string, integer="">();
        handler = new Handler();
        overlayThread = new OverlayThread();
         
        initOverlay();
        setAdapter(stations);
        mStationListView.setOnItemClickListener(new StationListOnItemClick());
 
    }
 
    class StationListOnItemClick implements OnItemClickListener {
 
        @Override
        public void onItemClick(AdapterView<!--?--> arg0, View arg1, int pos,
                long arg3) {
            Station station = (Station) mStationListView.getAdapter().getItem(
                    pos);
            Intent intent = getIntent();
            //Toast.makeText(getApplicationContext(), "0000000"+station.getStation_name(), 1).show();
            intent.putExtra("name", station.getStation_name());
             
            setResult(200, intent);
            finish();
        }
 
    }
 
    private void setAdapter(List<station> list) {
        if (list != null) {
            adapter = new ListAdapter(this, list);
            mStationListView.setAdapter(adapter);
        }
 
    }
 
    private class ListAdapter extends BaseAdapter {
        private LayoutInflater inflater;
        private List<station> list;
 
        public ListAdapter(Context context, List<station> list) {
 
            this.inflater = LayoutInflater.from(context);
            this.list = list;
            alphaIndexer = new HashMap<string, integer="">();
            sections = new String[list.size()];
 
            for (int i = 0; i < list.size(); i++) {
                 
                String currentStr = list.get(i).getSort_order();
                 
                String previewStr = (i - 1) >= 0 ? list.get(i - 1)
                        .getSort_order() : " ";
                if (!previewStr.equals(currentStr)) {
                    String name = list.get(i).getSort_order();
                    alphaIndexer.put(name, i);
                    sections[i] = name;
                }
            }
 
        }
 
        @Override
        public int getCount() {
            return list.size();
        }
 
        @Override
        public Object getItem(int position) {
            return list.get(position);
        }
 
        @Override
        public long getItemId(int position) {
            return position;
        }
 
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder;
            if (convertView == null) {
                convertView = inflater
                        .inflate(R.layout.station_list_item, null);
                holder = new ViewHolder();
                holder.alpha = (TextView) convertView.findViewById(R.id.alpha);
                holder.name = (TextView) convertView.findViewById(R.id.name);
                convertView.setTag(holder);
            } else {
                holder = (ViewHolder) convertView.getTag();
            }
 
            holder.name.setText(list.get(position).getStation_name());
            String currentStr = list.get(position).getSort_order();
            String previewStr = (position - 1) >= 0 ? list.get(position - 1)
                    .getSort_order() : " ";
            if (!previewStr.equals(currentStr)) {
                holder.alpha.setVisibility(View.VISIBLE);
                holder.alpha.setText(currentStr);
            } else {
                holder.alpha.setVisibility(View.GONE);
            }
            return convertView;
        }
 
        private class ViewHolder {
            TextView alpha;
            TextView name;
        }
 
    }
 
    //
    private void initOverlay() {
        LayoutInflater inflater = LayoutInflater.from(this);
        overlay = (TextView) inflater.inflate(R.layout.station_overlay, null);
        overlay.setVisibility(View.INVISIBLE);
        WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.TYPE_APPLICATION,
                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                        | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
                PixelFormat.TRANSLUCENT);
        WindowManager windowManager = (WindowManager) this
                .getSystemService(Context.WINDOW_SERVICE);
        windowManager.addView(overlay, lp);
 
    }
 
    private class LetterListViewListener implements
            OnTouchingLetterChangedListener {
 
        @Override
        public void onTouchingLetterChanged(final String s) {
            if (alphaIndexer.get(s) != null) {
                int position = alphaIndexer.get(s);
                mStationListView.setSelection(position);
                overlay.setText(sections[position]);
                overlay.setVisibility(View.VISIBLE);
                handler.removeCallbacks(overlayThread);
                handler.postDelayed(overlayThread, 1500);
            }
        }
    }
 
    private class OverlayThread implements Runnable {
        @Override
        public void run() {
            overlay.setVisibility(View.GONE);
        }
    }
 
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            Intent intent = getIntent();
            intent.putExtra("name", "");
            setResult(200, intent);
             
            finish();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
     
     
}</string,></station></station></station></string,>

特别说明:
☉如果服务器暂不能下载请稍后重试!总是不能下载,请联系客服QQ:597260440,谢谢合作!
☉本站所有源码仅供学习与参考,请勿用于商业用途。
模板说明:
源码-仿12306,其版权归原作者所有,如损害你的权益请联系客服QQ:597260440给予处理。

本文永久链接:http://code.fangbianle.com/goods/show-5185.html

相关源码

在线客服
热线电话

备案号:豫ICP备14017793号-2编辑热线:0371-56691758

Copyight@2014-2018 All Rights Reserved 页面加载耗时0.833秒