ListView中包含EditText,修改并保存EditText中内容的处理办法
来源:互联网 发布:微信群营销软件 编辑:程序博客网 时间:2024/06/05 04:22
private static final int MSG_UPDATE_ITEM_TIME = 2;private List<Event> eventList = new ArrayList<>();private HashMap<Integer, String> eventMap = new HashMap<>();private Handler mHandler = new Handler(new Handler.Callback() { @Override public boolean handleMessage(Message msg) { switch (msg.what) { case MSG_UPDATE_ITEM_TIME: int position = msg.arg1; String time = eventMap.get(position); Event ev = eventList.get(position); ev.setStarttime(time); eventList.set(position, ev); break; } return false; } }); private class EventListAdapter extends BaseAdapter { @Override public int getCount() { return eventList.size(); } @Override public Object getItem(int position) { return eventList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { final ViewHolder viewHolder; if (convertView == null) { viewHolder = new ViewHolder(); convertView = LayoutInflater.from(mContext).inflate(R.layout.event_list_item_layout, null); viewHolder.relative_time = (RelativeLayout) convertView.findViewById(R.id.relative_time); viewHolder.tv_event_time = (TextView) convertView.findViewById(R.id.tv_event_time); viewHolder.iv_arrow = (ImageView) convertView.findViewById(R.id.iv_arrow); viewHolder.et_event = (EditText) convertView.findViewById(R.id.et_event); viewHolder.et_event.setTag(position); viewHolder.et_event.addTextChangedListener(new MyTextChangeListener(viewHolder)); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); viewHolder.et_event.setTag(position); } Event event = eventList.get(position); viewHolder.relative_time.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { viewHolder.iv_arrow.setBackgroundResource(R.drawable.selected); final ListPopupWindow mPopup = new ListPopupWindow(mContext); final String time[] = getResources().getStringArray(R.array.time); ArrayAdapter adapter = new ArrayAdapter(mContext, android.R.layout.simple_list_item_1, time); mPopup.setAdapter(adapter); mPopup.setWidth(LinearLayout.LayoutParams.WRAP_CONTENT); mPopup.setHeight(550); mPopup.setModal(true); mPopup.setOnDismissListener(new PopupWindow.OnDismissListener() { @Override public void onDismiss() { viewHolder.iv_arrow.setBackgroundResource(R.drawable.normal); eventMap.put(position, viewHolder.tv_event_time.getText().toString()); Message msg = new Message(); msg.what = MSG_UPDATE_ITEM_TIME; msg.arg1 = position; mHandler.sendMessage(msg); } }); mPopup.setAnchorView(viewHolder.relative_time); mPopup.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id) { viewHolder.tv_event_time.setText(time[position]); mPopup.dismiss(); viewHolder.iv_arrow.setBackgroundResource(R.drawable.normal); } }); mPopup.show(); } }); viewHolder.tv_event_time.setText(event.getStarttime()); viewHolder.et_event.setText(event.getTitle()); return convertView; } private class ViewHolder { RelativeLayout relative_time; TextView tv_event_time; ImageView iv_arrow; EditText et_event; } private class MyTextChangeListener implements TextWatcher { private ViewHolder holder; public MyTextChangeListener(ViewHolder holder) { this.holder = holder; } @Override public void afterTextChanged(Editable s) { int position = (Integer) holder.et_event.getTag(); Event event = eventList.get(position); event.setTitle(s.toString()); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } } }
event_list_item_layout.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:minHeight="60dp"> <RelativeLayout android:id="@+id/relative_time" android:layout_width="91.67dp" android:layout_height="wrap_content"> <TextView android:id="@+id/tv_event_time" android:layout_width="50dp" android:layout_height="19dp" android:layout_centerInParent="true" android:text="11:30" android:textColor="#000000" android:textSize="16sp" /> <ImageView android:id="@+id/iv_arrow" android:layout_width="10dp" android:layout_height="5dp" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:background="@drawable/normal" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_below="@id/tv_event_time" android:layout_marginTop="15dp" android:background="#C8C8C8" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignBottom="@+id/relative_time" android:layout_marginLeft="21.67dp" android:layout_toRightOf="@+id/relative_time"> <EditText android:id="@+id/et_event" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@null" android:text="和朋友吃饭" android:singleLine="true" android:textColor="#000000" android:textSize="16sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_below="@id/et_event" android:layout_marginTop="6.67dp" android:background="#C8C8C8" /> </RelativeLayout></RelativeLayout>
R.array.time
<string-array name="time"> <item>1:00</item> <item>1:30</item> <item>2:00</item> <item>2:30</item> <item>3:00</item> <item>3:30</item> <item>4:00</item> <item>4:30</item> <item>5:00</item> <item>5:30</item> <item>6:00</item> <item>6:30</item> <item>7:00</item> <item>7:30</item> <item>8:00</item> <item>8:30</item> <item>9:00</item> <item>9:30</item> <item>10:00</item> <item>10:30</item> <item>11:00</item> <item>11:30</item> <item>12:00</item> <item>12:30</item> <item>13:00</item> <item>13:30</item> <item>14:00</item> <item>14:30</item> <item>15:00</item> <item>15:30</item> <item>16:00</item> <item>16:30</item> <item>17:00</item> <item>17:30</item> <item>18:00</item> <item>18:30</item> <item>19:00</item> <item>19:30</item> <item>20:00</item> <item>20:30</item> <item>21:00</item> <item>21:30</item> <item>22:00</item> <item>22:30</item> <item>23:00</item> <item>23:30</item> <item>24:00</item> </string-array>
阅读全文
0 0
- ListView中包含EditText,修改并保存EditText中内容的处理办法
- Edittext In Listview,当listview的item中有edittext时,怎么保存edittext的值?
- ListView包含EditText处理
- 在ListView中修改EditText的值
- 在ListView中修改EditText的值
- ListView修改item中EditText
- listview相关问题—item中包含EditText的处理 (高上)
- Listview的itemview中包含edittext控件时的解决方案
- Android开发ListView中包含EditText控件遇到的问题
- 在ListView中动态添加EditText并对其中的数据进行保存和由于复用引起的Editext中的内容显示异常的解决方案
- 安卓ListView的item中含有EditText,动态添加item时EditText值的保存
- ListView中使用EditText(解决EditText焦点丢失、保存数据以及滚动冲突的问题)
- 在ListView中嵌套EditText,EditText内容过多需要滚动的问题
- 在edittext中输入内容,动态匹配更新 listview的数据(EditText中边输入,listView边更新)
- ListView中嵌套EditText
- Android中新建文件并将EditText中的内容保存其中
- GridView中包含EditText的焦点获取
- 保存EditText的文本内容
- MySQL导入大批Excel数据
- C/C++ 练习题
- string小技巧
- Linux中如何停止kibana
- abort,exit,return 的区别
- ListView中包含EditText,修改并保存EditText中内容的处理办法
- redis-JedisPoolConfig配置
- PHPWAMP内置IIS管理器一键搭建PHP网站,支持无限个不同PHP版本同时运行
- http://blog.csdn.net/paincupid/article/details/47746341
- 获取 AWS 免费套餐
- HDU1166——树状数组模板
- js银行卡每四位加空格正则表达式
- JAVA设计模式之单例模式
- 语音识别 关于麦克风MIC的选型及技术要求