首页 > 其他分享 >Android学习-ListView再视

Android学习-ListView再视

时间:2023-03-05 17:15:28浏览次数:46  
标签:再视 public listview import Android ListView holder android view

之前接触了一点ListView的基础知识,但没有自己去敲,学的不是很深刻,今天我按照教程,写了一个listview的基本实现,基本掌握了listview

listview的学习是为了给RecyclerView打一下基础,毕竟RecyclerView优点更多,更好用,实际开发中主要就是用到它。

先看看实现了什么效果:首先我为了省事,直接把每一个单元内的内容设置的一样,之后实际使用的时候肯定不这么弄了~

然后就是可以上下滑动,点击第几个就会弹出:  “点击pos:几”  的效果,在实际使用中,我们可以将这个效果改为跳转到对应的界面。

 

 代码实现,先放最主要的部分

MyListAdapter.java
package com.example.testapplication.listview;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.example.testapplication.R;

public class MyListAdapter extends BaseAdapter {

    private Context mContext;
    private LayoutInflater mLayoutInflater;
    public MyListAdapter(Context context){
        this.mContext = context;
        mLayoutInflater = LayoutInflater.from(context);
    }
    @Override
    public int getCount() {
        return 10;
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    static class ViewHolder{
        public TextView tv1,tv2,tv3;
    }
    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        ViewHolder holder = null;
        if (view == null){
            view = mLayoutInflater.inflate(R.layout.layout_list_item,null);
            holder = new ViewHolder();

            holder.tv1=(TextView) view.findViewById(R.id.tv_1);
            holder.tv2=(TextView) view.findViewById(R.id.tv_2);
            holder.tv3=(TextView) view.findViewById(R.id.tv_3);

            view.setTag(holder);
        }else{
            holder = (ViewHolder) view.getTag();
        }
        //给控件赋值
        holder.tv1.setText("姓名是");
        holder.tv2.setText("班级是");
        holder.tv3.setText("学号是");

        return view;
    }
}
ListViewActivity.java
package com.example.testapplication.listview;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;

import com.example.testapplication.R;

public class ListViewActivity extends AppCompatActivity {

    private ListView mLv1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view);

        mLv1 = (ListView) findViewById(R.id.lv_1);
        mLv1.setAdapter(new MyListAdapter(ListViewActivity.this));
        mLv1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(ListViewActivity.this, "点击pos:"+position, Toast.LENGTH_SHORT).show();
            }
        });
    }
}
MainActivity.java
package com.example.testapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import com.example.testapplication.listview.ListViewActivity;

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private Button btn_listview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn_listview = (Button) findViewById(R.id.btn_listview);
        btn_listview.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        if (findViewById(R.id.btn_listview).equals(view)) {
            Intent intent = new Intent(this, ListViewActivity.class);
            startActivity(intent);
        }

    }

}

标签:再视,public,listview,import,Android,ListView,holder,android,view
From: https://www.cnblogs.com/rsy-bxf150/p/17180924.html

相关文章

  • 【Android逆向】脱壳项目frida_dump 原理分析
    脱dex核心文件dump_dex.js核心函数functiondump_dex(){varlibart=Process.findModuleByName("libart.so");varaddr_DefineClass=null;varsymbol......
  • Android studio ListView的界面
    新建.java文件,定义一个实体类bt_list_adapter_type.java,作为ListView适配器的适配类型;publicclassbt_list_adapter_type{privateStringname;privateintim......
  • Android常用命令集锦
    1.android:对你只要输入android就会出来,SDKandAVDmanager我们可以更新SDK,增删修改AVD.2.androidlistavds:这条命令将会列出所有我们创建的android模拟器.3.andr......
  • Attempt to invoke virtual method ‘java.lang.String android.os.Bundle.getString(
    报错日志java.lang.NullPointerException:Attempttoinvokevirtualmethod'java.lang.Stringandroid.os.Bundle.getString(java.lang.String)'onanullobjectref......
  • Android学习-每日打卡APP-实现每日打卡
    继续写我的打卡APP-完成了每日打卡的功能,其实还是比较简单,因为和注册一样都是插入的过程同时还能实现自动计数的功能,把坚持天数自动计算出来,打卡后插入数据库效果,可以看......
  • Android-每日打卡APP-实现登录功能
    每日打卡APP新的进展-实现登录功能-昨天已经把注册功能实现了,今天也很快把登录功能做了出来,然后接着着手做其他功能,打卡功能写在下一篇博客能够实现登录和注册,注册相关的......
  • Androidstudio连接SQLite数据库报错not such table的相关解决
    错误展示明明就是按照创建第一个表的步骤来的,然后就是死活创建不出来第二张表,离谱啊家人们!错误解决针对于这个错误,只需要在SQLite类里面,将其中的version变量的值更改为......
  • Android Studio使用Anko库
    1.在项目build.gradle中指定插件及Anko库版本:plugins{id'com.android.application'version'7.4.2'applyfalseid'com.android.library'version'7.4.2'ap......
  • Android JNI 调用
    1.Android Studio创建native项目   对项目进行解释cmake_minimum_required(VERSION3.10.2)#Declaresandnamestheproject.project("jnitest")#Create......
  • 【Android】如何去掉默认标题栏
      1、在AndroidManifest.xml文件中修改并添加以下代码android:theme="@style/Theme.AppCompat.NoActionBar"2、在你想要去掉标题栏的页面Java文件添加相应代码(注......