美文网首页
ListView的用法

ListView的用法

作者: 方可为友 | 来源:发表于2021-04-29 09:46 被阅读0次

    -主界面布局:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <ListView
            android:id="@+id/lv_main"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    
    </LinearLayout>
    

    -adapter布局:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:orientation="vertical">
    
        <TextView
            android:id="@+id/tv_main_content"
            android:text="content"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    
    </LinearLayout>
    

    -adapter,java写法:

    class MyAdapter extends BaseAdapter {
    
        @Override
        public int getCount() {
            return 40;
        }
    
        @Override
        public Object getItem(int position) {
            return position;
        }
    
        @Override
        public long getItemId(int position) {
            return position;
        }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder viewHolder = null;
            if (convertView == null) {
                convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_adapter, parent, false);
                viewHolder = new ViewHolder(convertView);
                convertView.setTag(viewHolder);
            } else {
                viewHolder = (ViewHolder) convertView.getTag();
            }
            viewHolder.tv_main_content.setText("content"+position);
            return convertView;
        }
    
        class ViewHolder {
            final View itemView;
            final TextView tv_main_content;
    
            ViewHolder(View itemView) {
                this.itemView = itemView;
                tv_main_content = itemView.findViewById(R.id.tv_main_content);
            }
        }
    }
    

    -主界面写法:

    class MainActivity : AppCompatActivity() {
    
        val listView by lazy { findViewById<ListView>(R.id.lv_main) }
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    
            listView.adapter=MyAdapter()
        }
    }
    

    -adapter,kotlin写法:

    class MyAdapter : BaseAdapter() {
        override fun getCount(): Int {
            return 40
        }
    
        override fun getItem(position: Int): Any {
            return position
        }
    
        override fun getItemId(position: Int): Long {
            return position.toLong()
        }
    
        override fun getView(
            position: Int,
            convertView: View,
            parent: ViewGroup
        ): View {
            var convertView = convertView
            var viewHolder: ViewHolder? = null
            if (convertView == null) {
                convertView = LayoutInflater.from(parent.context)
                    .inflate(R.layout.item_adapter, parent, false)
                viewHolder = ViewHolder(convertView)
                convertView.tag = viewHolder
            } else {
                viewHolder = convertView.tag as ViewHolder
            }
            viewHolder.tv_main_content.text = "content$position"
            return convertView
        }
    
        internal inner class ViewHolder(val itemView: View) {
            val tv_main_content: TextView
    
            init {
                tv_main_content = itemView.findViewById(R.id.tv_main_content)
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:ListView的用法

          本文链接:https://www.haomeiwen.com/subject/lgmirltx.html