Android学习笔记(Android Studio)2-6~2-8(CheckBox、ImageView、ListView )

Dreama ·
更新时间:2024-09-20
· 899 次阅读

Android学习笔记2-6~2-8 推荐新手向学习视频:B站https://www.bilibili.com/video/av38409964点我传送 2-6 复选框CheckBox

常用属性

自定义样式

bg_checkbox.xml文件 未选中时 选中时

监听事件

public class CheckBoxActivity extends AppCompatActivity { private CheckBox mCb5; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_check_box); mCb5 = findViewById(R.id.cb_5); mCb5.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Toast.makeText(CheckBoxActivity.this,isChecked?"选中":"未选中",Toast.LENGTH_SHORT).show(); } }); } }

效果
主程序代码 public class ImageViewActivity extends AppCompatActivity { private ImageView mIv4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_image_view); mIv4 = findViewById(R.id.iv_4); Glide.with(this).load("https://www.baidu.com/img/bd_logo1.png?where=super").into(mIv4); //网路图片地址,Glide红字报错,按alt+enter键,选择第一个import class即可解决 } } 2-8 列表视图 ListView(不常用,可以用GridView代替,了解即可)

常用属性

activity_listview.xml文件

自定义选中效果,不是内部具体视图

效果

这里说一下color.xml文件里的colorTransparent颜色,是透明色

#00000000

layout_list_item.xml文件,定义ListView的具体布局

具体布局效果
在这里插入图片描述

Adapter接口

MyListAdapter.java文件,把定义的ListView的具体布局放到ListView里

package com.ylw.helloworld.listview; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.ylw.helloworld.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() { //获取列表长度,就是ListView内部有多少个列表 return 10; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } static class ViewHolder{ public ImageView imageView; public TextView tvTitle,tvTime,tvContext; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if(convertView == null){ convertView = mLayoutInflater.inflate(R.layout.layout_list_item,null); holder = new ViewHolder(); holder.imageView = convertView.findViewById(R.id.iv); holder.tvTitle = convertView.findViewById(R.id.tv_title); holder.tvTime = convertView.findViewById(R.id.tv_time); holder.tvContext = convertView.findViewById(R.id.tv_content); convertView.setTag(holder); }else { holder = (ViewHolder) convertView.getTag(); } //给控件赋值,这样原来在layout_list_item.xml文件里的赋值就不起作用的 holder.tvTitle.setText("这是标题"); holder.tvTime.setText("2088-08-08"); holder.tvContext.setText("这是内容"); Glide.with(mContext).load("https://www.baidu.com/img/bd_logo1.png?where=super").into(holder.imageView); return convertView; } }

Adapter接口效果,可以看到在这里的赋值已经覆盖了原来的赋值
在这里插入图片描述

设置监听事件

ListViewActivity.java文件

package com.ylw.helloworld.listview; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.Toast; import androidx.annotation.Nullable; import com.ylw.helloworld.R; public class ListViewActivity extends Activity { private ListView mLv1; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_listview); mLv1 = 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(); //跳转 } }); mLv1.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { //长按事件 @Override public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { Toast.makeText(ListViewActivity.this,"长按 pos:"+position,Toast.LENGTH_SHORT).show(); return true; //false会告诉系统没有处理完,长按后还会出发点击,这里应该返回true,表示事件结束,就不会触发点击了 } }); } }

点击和长按效果,由于瞬间变色效果不好截取,这里就不展示了。这里点击是点击第一个,长按第二个,可以看出,ListView排序是从0开始的。
在这里插入图片描述在这里插入图片描述


作者:影龙武



android学习 Android Studio checkbox studio listview Android

需要 登录 后方可回复, 如果你还没有账号请 注册新账号