您的位置:首页 > 其它

listview获取edittext中输入的数据,显示,并且实现可删除功能

2013-10-30 09:48 1076 查看
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上

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: