没有合适的资源?快使用搜索试试~ 我知道了~
前几天一同学项目中的某个功能需要ListView+EditText来实现,希望我给他写个Demo,自己就随手写了一个小的Demo。后来想了想觉得这个功能其实挺常用的,而且期间也踩了几个坑,就整理了一下,希望能够帮到大家。好了,废话不多说了,接着就贴代码。 一、编写布局文件 1.activity的布局activity_main <RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android xmlns:tools=http://schemas.android.com/tools android:l
资源推荐
资源详情
资源评论
小心!小心!Listview结合结合EditText使用实例中遇到的那些坑使用实例中遇到的那些坑
前几天一同学项目中的某个功能需要ListView+EditText来实现,希望我给他写个Demo,自己就随手写了一个小的Demo。后
来想了想觉得这个功能其实挺常用的,而且期间也踩了几个坑,就整理了一下,希望能够帮到大家。好了,废话不多说了,接
着就贴代码。
一、编写布局文件一、编写布局文件
1.activity的布局的布局activity_main
<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.mytestdemo.MainActivity" >
<ListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
只有一个ListView,所以就不多说了。
2.item的布局的布局edittext_item
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/item_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="20dp"
android:paddingBottom="20dp"
android:orientation="horizontal" >
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:layout_height="50dp"/>
<EditText
android:id="@+id/edit_text"
android:layout_gravity="center_vertical"
android:layout_marginLeft="30dp"
android:layout_width="match_parent"
android:layout_height="100dp"
android:gravity="top"
android:padding="5dp"
android:background="@drawable/shape_edittext"/>
</LinearLayout>
一个水平的LinearLayout,里面有一个TextView和一个EditText。
为了稍微好看那么一点,所以给EditText加了一个圆角矩形背景。
3.EditText的圆角矩形背景的圆角矩形背景shape_edittext
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#FFFFFFFF"/>
<stroke android:width="1dp"
android:color="#000000"/>
<corners android:radius="5dp"/>
</shape>
OK,布局代码已经贴完了,接下来就看看咱们的逻辑代码吧。
二、编写二、编写MainActivity类类
public class MainActivity extends Activity {
private static final String TAG = "zbw";
private static final int DATA_CAPACITY = 20;
private ListView mListView;
private List<String> mList = new ArrayList<String>(DATA_CAPACITY);
private MyAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mListView = (ListView) findViewById(R.id.list_view);
//填充数据
for(int i = 0; i < DATA_CAPACITY; i++) {
mList.add("" + i);
}
//设置Adapter
mAdapter = new MyAdapter(this, mList);
mListView.setAdapter(mAdapter);
}
}
可以看到MainActivity的代码逻辑页比较简单,主要操作就是生成了一个长度为20的List,然后将其作为数据源扔进Adapter里
面。好了,接下来就让我们一起来看一下最后的Adapter类。
三、编写三、编写MyAdapter类类
好了,终于到了重头戏,接下来咱们就一步步的编写Adapter来解决ListView和EditText的各种冲突。
1.最普通的最普通的Adapter
首先咱们先按照以往的经验写一个最普通的Adapter,看一下会出现哪些问题:
public class MyAdapter extends BaseAdapter {
private ViewHolder mViewHolder;
private LayoutInflater mLayoutInflater;
private List<String> mList;
public MyAdapter(Context context, List<String> list) {
mLayoutInflater = LayoutInflater.from(context);
mList = list;
}
@Override
public int getCount() {
剩余6页未读,继续阅读
资源评论
weixin_38618746
- 粉丝: 3
- 资源: 945
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功