main .XML
<!-- 用药情况 -->
<TextView
style="@style/layout_vertical"
android:layout_weight="1"
android:background="@color/followup_tipbackground"
android:text="11.用药情况是什么样的?"
android:textColor="@color/followup_tipword"
android:textSize="@dimen/tilletextsize" />
<LinearLayout
style="@style/layout_vertical"
android:layout_weight="1"
android:orientation="vertical" >
<RelativeLayout
style="@style/layout_vertical"
android:layout_weight="1"
android:orientation="horizontal" >
<TextView
android:id="@+id/followupMedication"
style="@style/layout_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="药物名称:"
android:textColor="#FF3E96"
android:textSize="@dimen/followup_content" />
<LinearLayout
style="@style/layout_horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/followupMedication"
android:orientation="horizontal" >
<EditText
android:id="@+id/medicinename"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="" />
</LinearLayout>
</RelativeLayout>
<LinearLayout
style="@style/layout_vertical"
android:layout_weight="1"
android:orientation="horizontal" >
<TextView
style="@style/layout_horizontal"
android:layout_weight="1"
android:text="每日:"
android:textColor="#FF3E96"
android:textSize="@dimen/followup_content" />
<EditText
android:id="@+id/medicinenametime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="number"
android:text="" />
<TextView
style="@style/layout_horizontal"
android:layout_weight="1"
android:text="次 "
android:textColor="#FF3E96"
android:textSize="@dimen/followup_content" />
<TextView
style="@style/layout_horizontal"
android:layout_weight="1"
android:text="每次:"
android:textColor="#FF3E96"
android:textSize="@dimen/followup_content" />
<EditText
android:id="@+id/medicinenamemg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="number"
android:text="" />
<TextView
style="@style/layout_horizontal"
android:layout_weight="1"
android:text="mg"
android:textColor="#FF3E96"
android:textSize="@dimen/followup_content" />
<Button
android:id="@+id/addmedicinebutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="添加" />
</LinearLayout>
<ListView
android:id="@+id/ListView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
配置listview
medicinelistview.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content"
android:paddingBottom="4dip"
android:paddingLeft="12dip"
android:paddingRight="12dip">
<TextView
android:text="药物名称:"
android:layout_height="wrap_content"
android:textSize="@dimen/followup_content"
android:layout_width="fill_parent"
android:id="@+id/ItemTitle"
/>
<TextView
android:text="药物用途"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_below="@+id/ItemTitle"
android:id="@+id/ItemText"
/>
<Button android:id="@+id/view_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="@string/delete_medicine"
/>
</RelativeLayout>
效果如图:
在edittext中输入文字后,点击添加,会在listview中显示出来。
点击删除,则选中的信息会删除。
listciew删除功能的实现:
medicineactivity
public class Followup_Highboold extends Activity {
//大致过程:
*************************全局变量
String medicineName,medicinetime,medicinedmg;
int medicineNO=0;
List<MkMedicalUseDto> medicaldtolist = new ArrayList<MkMedicalUseDto>();
ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();
MyAdapter listItemAdapter = null;
MkMedicalUseDto dto = new MkMedicalUseDto();
ListView list;
************************************添加按钮
list = (ListView) findViewById(R.id.ListView01);
addmedicinebutton=(Button) findViewById(R.id.addmedicinebutton);
addmedicinebutton.setOnClickListener(viewOnClickListener);
*******点击添加时的相应事件
private OnClickListener viewOnClickListener = new OnClickListener() {
@Override
public void onClick(View view) {
case R.id.addmedicinebutton:// 新增药物
medicineNO++;
medicineName=medicinename.getText().toString();
medicinetime=medicinenametime.getText().toString();
medicinedmg=medicinenamemg.getText().toString();
if(!medicineName.equals(""))
{
listViewByClick();
}
medicinename.setText("");
medicinenametime.setText("");
medicinenamemg.setText("");
}
******
//药物显示,listview
/**
* listview中点击删除按钮,则选中行可以删除
*/
public void showInfo(final int position){
new AlertDialog.Builder(this)
.setTitle("删除此药物")
.setMessage("是否删除?")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
listItem.remove(position); //真正实现删除此条选中的数据
medicaldtolist.remove(position);//往后台传的过程,和此功能的实现无关
listItemAdapter.notifyDataSetChanged();//刷新listview,实现页面上的删除
}
})
.show();
}
public final class ViewHolder {
public TextView title;
public TextView info;
public Button viewBtn;
}
public class MyAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public MyAdapter(Context context) {
this.mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return listItem.size();
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
@Override
public View getView(final int position, View convertView,
ViewGroup parent) {
// 通过Log.i()可以发现这个会多次调用,容易理解
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.medicinelistview, null);
holder.title = (TextView) convertView.findViewById(R.id.ItemTitle);
holder.info = (TextView) convertView.findViewById(R.id.ItemText);
holder.viewBtn = (Button) convertView.findViewById(R.id.view_btn);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.title.setText((String) listItem.get(position).get("mkDocrovMedicalName"));
holder.info.setText((String) listItem.get(position).get("mkDocrovMethod"));
holder.viewBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
showInfo(position);
}
});
return convertView;
}
}
public void listViewByClick(){
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("mkDocrovMedicalName", "药物名称: "+medicineName);
map.put("mkDocrovMethod", "用 法:每日 "+medicinetime+"次,每次"+medicinedmg+"克");
listItem.add(0, map);
dto.setMkDocrovMedicalName(map.get("mkDocrovMedicalName").toString());//往后台传的过程,和此功能的实现无关
dto.setMkDocrovMethod(map.get("mkDocrovMethod").toString());//往后台传的过程,和此功能的实现无关
medicaldtolist.add(dto);//往后台传的过程,和此功能的实现无关
//生成适配器的Item和动态数组对应的元素
/*SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,//数据源
R.layout.medicinelistview,//ListItem的XML实现
//动态数组与ImageItem对应的子项
new String[] {"mkDocrovMedicalName", "mkDocrovMethod"},
//ImageItem的XML文件里面的一个ImageView,两个TextView ID
new int[] {R.id.ItemTitle,R.id.ItemText}
); */
listItemAdapter = new MyAdapter(this);
list.setAdapter(listItemAdapter); //将listview中展示的信息显示在main.xml上
}