概述
这篇比较简单,就是收藏自己的快递信息以后随便查阅进度,界面找了一些小logo显得比较干净整洁,数据库部分处理是使用了Xutil中的DbUtils部分来处理
1、快递收藏效果
在MyExpressActivity.Java中的写了一个适配器
MyExpressAdapter adapter;,进入MyExpressAdapter.java中可以看出它继承BaseAdapter,其中核心是在getview部分
[java]
view plain
copy
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- // TODO Auto-generated method stub
- ViewHolder holder;
- if (convertView == null) {
- <span style="color:#009900;"> convertView = mInflater.inflate(R.layout.my_express_item,parent, false);</span>
- holder = new ViewHolder();
- holder.remarkName = (TextView) convertView.findViewById(R.id.tv_remark_name);
- holder.expressNameAndNumber = (TextView) convertView.findViewById(R.id.tv_express_name_number);
- holder.newInfo = (TextView) convertView.findViewById(R.id.tv_new_context);
- holder.newTime = (TextView) convertView.findViewById(R.id.tv_new_time);
- convertView.setTag(holder);
- } else {
- holder = (ViewHolder) convertView.getTag();
- }
- holder.remarkName.setText(lists.get(position).getName());
- holder.expressNameAndNumber.setText(lists.get(position).getExpressName() + " " + lists.get(position).getExpressNumber());
- holder.newInfo.setText(lists.get(position).getNewInfo());
- holder.newTime.setText(lists.get(position).getNewDate());
- return convertView;
- }
在面绿色的布局文件中,就是这个效果的核心所在
[html]
view plain
copy
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- xmlns:baiduadsdk="http://schemas.android.com/apk/res/com.weimeijing.feigeshudi"
- >
- <TextView
- android:id="@+id/tv_remark_name"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:text="备注名称"
- android:textColor="#FF000000"
- android:textSize="15dp" />
- <TextView
- android:id="@+id/tv_express_name_number"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="快递名称 + 单号"
- android:background="@drawable/mark"
- android:textColor="@color/white"
- android:textSize="13dp" />
- <TextView
- android:id="@+id/tv_new_context"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="最新信息"
- android:textColor="#FF000000"
- android:textSize="17dp" />
- <TextView
- android:id="@+id/tv_new_time"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="最新时间"
- android:textColor="#FF353535"
- android:textSize="13dp" />
- </LinearLayout>
2、逻辑处理
在MyExpressActivity.java利用Xutil中的DbUtils部分来处理,来完成增删改查
[java]
view plain
copy
- package com;
- import java.util.ArrayList;
- import java.util.List;
- import com.lidroid.xutils.DbUtils;
- import com.lidroid.xutils.db.sqlite.Selector;
- import com.lidroid.xutils.exception.DbException;
- import com.weimeijing.feigeshudi.R;
- import com.adapter.MyExpressAdapter;
- import com.bean.ExpressHistory;
- import com.util.QueryExpressUtil;
- import android.app.AlertDialog;
- import android.app.ProgressDialog;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.net.Uri;
- import android.os.Bundle;
- import android.support.v4.app.Fragment;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.TextureView;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.AdapterView;
- import android.widget.AdapterView.OnItemClickListener;
- import android.widget.AdapterView.OnItemLongClickListener;
- import android.widget.EditText;
- import android.widget.ListView;
- import android.widget.TextView;
- import android.widget.Toast;
- public class MyExpressActivity extends Fragment {
- private ListView myExpress;
- private List<ExpressHistory> infoList;
- private ProgressDialog progressDialog;
- MyExpressAdapter adapter;
- private ExpressHistory isExist;
- DbUtils db;
- private String number;
- private TextView count;
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- return inflater.inflate(R.layout.activity_my_express, container, false);
- }
- @Override
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- <span style="color:#33CC00;">db = DbUtils.create(getActivity());</span>
- myExpress = (ListView) getView().findViewById(R.id.lv_my_express);
- // count计数
- count = (TextView) getView().findViewById(R.id.count);
- try {
- infoList = db.findAll(Selector.from(ExpressHistory.class));
- if (infoList == null) {
- count.setText("0");
- } else {
- count.setText("" + infoList.size());
- }
- } catch (DbException e2) {
- // TODO Auto-generated catch block
- e2.printStackTrace();
- }
- myExpress.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> parent, View view,
- int position, long id) {
- Log.v("setOnItemClickListener", "setOnItemClickListener");
- progressDialog = new ProgressDialog(getActivity());
- number = infoList.get(position).getExpressNumber();
- String name = infoList.get(position).getExpressName();
- String code = infoList.get(position).getExpressCode();
- QueryExpressUtil.queryExpressForNumber(number, name, code,
- getActivity(), progressDialog);
- }
- });
- myExpress.setOnItemLongClickListener(new OnItemLongClickListener() {
- @Override
- public boolean onItemLongClick(AdapterView<?> parent, View view,
- final int position, long id) {
- // TODO Auto-generated method stub
- Log.v("setOnItemLongClickListener",
- "setOnItemLongClickListener");
- new AlertDialog.Builder(getActivity())
- .setTitle("操作")
- .setItems(R.array.arrcontent,
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int which) {
- final String[] PK = getResources()
- .getStringArray(
- R.array.arrcontent);
- if (PK[which].equals("修改备注")) {
- final EditText editText = new EditText(
- getActivity());
- new AlertDialog.Builder(
- getActivity())
- .setTitle("请输入备注名称")
- .setIcon(
- android.R.drawable.ic_dialog_info)
- .setView(editText)
- .setPositiveButton(
- "确定",
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(
- DialogInterface dialog,
- int which) {
- number = infoList
- .get(position)
- .getExpressNumber();
- // TODO
- // Auto-generated
- // method
- // stub
- try {
- isExist = db
- .findFirst(Selector
- .from(ExpressHistory.class)
- .where("expressnumber",
- "=",
- number));
- } catch (DbException e1) {
- // TODO
- // Auto-generated
- // catch
- // block
- e1.printStackTrace();
- }
- isExist.setName(editText
- .getText()
- .toString());
- try {
- db.update(isExist);
- } catch (DbException e1) {
- // TODO
- // Auto-generated
- // catch
- // block
- e1.printStackTrace();
- }
- adapter = (MyExpressAdapter) myExpress
- .getAdapter();
- adapter.notifyDataSetChanged();// 实现数据的实时刷新
- }
- })
- .setNegativeButton(
- "取消",
- new DialogInterface.OnClickListener() {
- @Override
- public void onClick(
- DialogInterface dialog,
- int which) {
- // TODO
- // Auto-generated
- // method
- // stub
- dialog.cancel();
- }
- }).create().show();
- }
- if (PK[which].equals("删除")) {
- String number = infoList.get(
- position)
- .getExpressNumber();
- Log.v("number", number);
- try {
- isExist = db
- .findFirst(Selector
- .from(ExpressHistory.class)
- .where("expressnumber",
- "=",
- number));
- } catch (DbException e1) {
- // TODO Auto-generated catch
- // block
- e1.printStackTrace();
- }
- try {
- db.deleteById(
- ExpressHistory.class,
- isExist.getId());
- } catch (DbException e) {
- // TODO Auto-generated catch
- // block
- e.printStackTrace();
- }
- infoList.remove(position);
- adapter = (MyExpressAdapter) myExpress
- .getAdapter();
- if (!adapter.isEmpty()) {
- adapter.notifyDataSetChanged(); // 实现数据的实时刷新
- }
- Toast.makeText(getActivity(),
- PK[which] + "成功",
- Toast.LENGTH_LONG).show();
- }
- if (PK[which].equals("通过短信发送")) {
- Uri uri = Uri.parse("smsto:");
- Intent intent = new Intent(
- Intent.ACTION_SENDTO, uri);
- intent.putExtra(
- "sms_body",
- infoList.get(position)
- .getNewDate()
- + " "
- + infoList
- .get(position)
- .getNewInfo());
- startActivity(intent);
- }
- }
- })
- .setNegativeButton("取消",
- new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog,
- int which) {
- // TODO Auto-generated method stub
- }
- }).show();
- return true;
- }
- });
- }
- @Override
- public void onResume() {
- // TODO Auto-generated method stub
- super.onResume();
- DbUtils db = DbUtils.create(getActivity());
- // List<ExpressHistory> infoList = null;
- try {
- infoList = db.findAll(ExpressHistory.class);
- } catch (DbException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- if (infoList == null || infoList.size() == 0) {
- Toast.makeText(getActivity(), "当前还没有保存任何快递哦,保存后再来这里查看吧!",
- Toast.LENGTH_SHORT).show();
- } else {
- MyExpressAdapter adapter = new MyExpressAdapter(getActivity(),
- (ArrayList<ExpressHistory>) infoList);
- myExpress.setAdapter(adapter);
- }
- }
- @Override
- public void onPause() {
- super.onPause();
- }
- }
转载:http://blog.csdn.net/xsf50717/article/details/47253495