⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 list13.java

📁 Android Source Code. An gallary program.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *      http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package com.example.android.apis.view;import android.app.ListActivity;import android.content.Context;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AbsListView;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;import android.widget.AbsListView.OnScrollListener;import com.example.android.apis.R;/** * Demonstrates how a list can avoid expensive operations during scrolls or flings. In this * case, we pretend that binding a view to its data is slow (even though it really isn't). When * a scroll/fling is happening, the adapter binds the view to temporary data. After the scroll/fling * has finished, the temporary data is replace with the actual data. * */public class List13 extends ListActivity implements ListView.OnScrollListener {    private TextView mStatus;        private boolean mBusy = false;        /**     * Will not bind views while the list is scrolling     *      */    private class SlowAdapter extends BaseAdapter {        private LayoutInflater mInflater;                public SlowAdapter(Context context) {            mContext = context;            mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);        }        /**         * The number of items in the list is determined by the number of speeches         * in our array.         *          * @see android.widget.ListAdapter#getCount()         */        public int getCount() {            return mStrings.length;        }        /**         * Since the data comes from an array, just returning the index is         * sufficent to get at the data. If we were using a more complex data         * structure, we would return whatever object represents one row in the         * list.         *          * @see android.widget.ListAdapter#getItem(int)         */        public Object getItem(int position) {            return position;        }        /**         * Use the array index as a unique id.         *          * @see android.widget.ListAdapter#getItemId(int)         */        public long getItemId(int position) {            return position;        }        /**         * Make a view to hold each row.         *          * @see android.widget.ListAdapter#getView(int, android.view.View,         *      android.view.ViewGroup)         */        public View getView(int position, View convertView, ViewGroup parent) {            TextView text;                        if (convertView == null) {                text = (TextView)mInflater.inflate(android.R.layout.simple_list_item_1, parent, false);            } else {                text = (TextView)convertView;            }            if (!mBusy) {                text.setText(mStrings[position]);                // Null tag means the view has the correct data                text.setTag(null);            } else {                text.setText("Loading...");                // Non-null tag means the view still needs to load it's data                text.setTag(this);            }            return text;        }        /**         * Remember our context so we can use it when constructing views.         */        private Context mContext;    }        @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.list_13);        mStatus = (TextView) findViewById(R.id.status);        mStatus.setText("Idle");                // Use an existing ListAdapter that will map an array        // of strings to TextViews        setListAdapter(new SlowAdapter(this));                getListView().setOnScrollListener(this);    }            public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,            int totalItemCount) {    }        public void onScrollStateChanged(AbsListView view, int scrollState) {        switch (scrollState) {        case OnScrollListener.SCROLL_STATE_IDLE:            mBusy = false;                        int first = view.getFirstVisiblePosition();            int count = view.getChildCount();            for (int i=0; i<count; i++) {                TextView t = (TextView)view.getChildAt(i);                if (t.getTag() != null) {                    t.setText(mStrings[first + i]);                    t.setTag(null);                }            }                        mStatus.setText("Idle");            break;        case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:            mBusy = true;            mStatus.setText("Touch scroll");            break;        case OnScrollListener.SCROLL_STATE_FLING:            mBusy = true;            mStatus.setText("Fling");            break;        }    }    private String[] mStrings = {            "Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam",            "Abondance", "Ackawi", "Acorn", "Adelost", "Affidelice au Chablis",

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -