随手记之liistview之setEmptyView(view)
来源:互联网 发布:linux的运行级别 编辑:程序博客网 时间:2024/04/28 17:09
无聊的时候就只有学习学习再学习,周末天太热,无处可去就只有在家看书了,以前没有注意过在listview的适配过程中,没有数据时的情况,今天翻书的过程中偶尔发现liistview在没有数据的时候是可以设置空view来和用户进行交互的,可以根据需要设置成更加有趣味的交互行为哦。下面上代码:
public class MainActivity extends Activity { ArrayList list = new ArrayList(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ListView listView = (ListView) findViewById(R.id.list); TextView textView = (TextView) findViewById(R.id.tv); final MyAdapter adapter = new MyAdapter(this,list); listView.setAdapter(adapter); if (list.size() == 0){ listView.setEmptyView(textView); list.add("111111111"); list.add("22222222222"); list.add("3333333333"); list.add("44444444444"); textView.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { adapter.notifyDataSetChanged(); } }); } } class MyAdapter extends BaseAdapter{ private ArrayList list; private Context context; MyAdapter(Context context,ArrayList list){ this.list = list; this.context = context; }; @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null){ holder = new ViewHolder(); convertView = LinearLayout.inflate(context,R.layout.row_item_layout,null); holder.left = (ImageView) convertView.findViewById(R.id.left); holder.right = (ImageView) convertView.findViewById(R.id.right); holder.textView = (TextView) convertView.findViewById(R.id.list_tv); convertView.setTag(holder); }else{ holder = (ViewHolder) convertView.getTag(); } holder.textView.setText(list.get(position).toString()); return convertView; } } class ViewHolder { ImageView left; ImageView right; TextView textView; }}
布局文件如下:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.mhyuam.emptyadapterview.MainActivity"> <TextView android:id="@+id/tv" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Hello World!" android:visibility="gone"/> <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="wrap_content"> </ListView></RelativeLayout>
下面的是一个自定义的drawable
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#EFEFEF" android:endColor="#000000" android:angle="225" android:type="linear"/></shape>
很容易理解,android:shape="rectangle"表示的是自定义的drawable的形状,下面是开始颜色和结束颜色,android:angle="225"表示的是渐变的方向,android:type="linear"线性渐变,其中还有一个属性android:centerColor="",这个就不言而喻了吧。
0 0
- 随手记之liistview之setEmptyView(view)
- ListView之setEmptyView的问题
- ListView之setEmptyView的问题
- ListView之setEmptyView的问题
- ListView之setEmptyView的问题
- ListView之setEmptyView的问题
- ListView之setEmptyView的问题
- ListView之setEmptyView的问题
- ListView之setEmptyView的问题
- ListView之setEmptyView的问题
- ListView之setEmptyView的问题
- Android 自定义View之随手指滑动的ToggleButton
- Android之自定义View实现随手势滑动的控件
- Android开发之ListView:setEmptyView的问题
- Android开发之ListView的setEmptyView()
- ListView之setEmptyView的问题(整理)
- Android ListView之setEmptyView的问题
- Android ListView之setEmptyView的问题
- MFC编程之——根据输入情况改变按钮状态
- Fragment跳转时传递参数及结果回传的方法
- java学习笔记-基本程序设计结构
- Android开发之TextView高级应用
- 前景检测算法(十六)--背景减除结束篇
- 随手记之liistview之setEmptyView(view)
- Codeforces Round #350 (Div. 2) C. Cinema __ sortings, 思维题,many data
- 数据库分表总结
- 18位身份证号验证算法的原理以及C#实现和在管理系统的应用
- Spring设置与读取.properties配置文件的bean
- Fragment详解之五——Fragment间参数传递
- JavaScript高级程序设计闭包学习理解
- 读书笔记-现代操作系统-3储存管理-3.4页面置换算法
- C#中当前计算机的环境的取得