android的几种数据存储

这里写了4中存储方式,本来按道理来说,是5种的,但是第五种网络存储,现在网络学的不怎么好,所以等下次再补上,现将前四种贴出来,供大家参考

资源下载地址:http://download.csdn.net/detail/fmx520/9592510

 * 1 使用SharedPreferences存储数据
 *
 * 2 文件存储数据
 *
 * 3 SQLite数据库存储数据
 *
 * 4 使用ContentProvider存储数据
 *
 * 5 网络存储数据

一.使用SharedPreferences存储数据

package fragment;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.fmx.demo.R;

public class Fragment1 extends Fragment implements OnClickListener {
	private TextView text1;
	private EditText edit1;
	private Button btn1Edit1, btn2Edit1;
	private SharedPreferences sharedPreferences;
	private SharedPreferences.Editor editor;
	private static final String TAG = "Fragment1";

	@Override
	@Nullable
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		View rootView = inflater.inflate(R.layout.fragment_xml1, container,
				false);
		initViews(rootView);
		initData();
		return rootView;
	}

	private void initData() {
		// TODO Auto-generated method stub
		sharedPreferences = getActivity().getSharedPreferences(TAG,
				Context.MODE_PRIVATE);
		editor = sharedPreferences.edit();
	}

	private void initViews(View rootView) {
		// TODO Auto-generated method stub
		text1 = (TextView) rootView.findViewById(R.id.text_1);
		edit1 = (EditText) rootView.findViewById(R.id.edit_1);
		btn1Edit1 = (Button) rootView.findViewById(R.id.btn1_edit_1);
		btn2Edit1 = (Button) rootView.findViewById(R.id.btn2_edit_1);
		btn1Edit1.setOnClickListener(this);
		btn2Edit1.setOnClickListener(this);
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		int code = v.getId();
		switch (code) {
		case R.id.btn1_edit_1:
			String text11 = edit1.getText().toString();
			if (!text11.equals("")) {
				editor.putString("text", text11);
				editor.commit();
				showToast("已经保存");
			} else {
				showToast("没有内容");
			}
			break;
		case R.id.btn2_edit_1:
			String text12 = sharedPreferences.getString("text",
					"为保存过数据或者保存的数据是null");
			text1.setText(text12);
			editor.clear();
			editor.commit();
			showToast("内容已经读取,数据删除");
			break;
		}
	}

	protected void showToast(String msg) {
		Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT).show();
	}
}
二.文件存储数据

package fragment;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Scanner;

import android.os.Bundle;
import android.os.Environment;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.fmx.demo.R;

public class Fragment2 extends Fragment implements OnClickListener {
	private TextView text2;
	private EditText edit2;
	private Button btn1Edit2, btn2Edit2;
	private static final String FILENAME = "demo.txt";
	private static final String DIR = "demo";

	@Override
	@Nullable
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		View rootView = inflater.inflate(R.layout.fragment_xml2, container,
				false);
		initViews(rootView);
		return rootView;
	}

	private void initViews(View rootView) {
		// TODO Auto-generated method stub
		text2 = (TextView) rootView.findViewById(R.id.text_2);
		edit2 = (EditText) rootView.findViewById(R.id.edit_2);
		btn1Edit2 = (Button) rootView.findViewById(R.id.btn1_edit_2);
		btn2Edit2 = (Button) rootView.findViewById(R.id.btn2_edit_2);
		btn1Edit2.setOnClickListener(this);
		btn2Edit2.setOnClickListener(this);
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		int code = v.getId();
		switch (code) {
		case R.id.btn1_edit_2:
			write(edit2.getText().toString());
			break;
		case R.id.btn2_edit_2:
			text2.setText(read());
			break;

		}
	}

	protected void showToast(String msg) {
		Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT).show();
	}

	// 文件写操作函数
	private void write(String content) {
		if (Environment.getExternalStorageState().equals(
				Environment.MEDIA_MOUNTED)) { 
			File file = new File(Environment.getExternalStorageDirectory()
					.toString()
					+ File.separator
					+ DIR
					+ File.separator
					+ FILENAME); 
			if (!file.getParentFile().exists()) { 
				file.getParentFile().mkdirs();
			}
			PrintStream out = null; 
			try {
				out = new PrintStream(new FileOutputStream(file, true));
				out.println(content);
			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				if (out != null) {
					out.close(); 
				}
			}
		} else {
			showToast("保存失败,SD卡不存在!");
		}
	}

	// 文件读操作函数
	private String read() {
		if (Environment.getExternalStorageState().equals(
				Environment.MEDIA_MOUNTED)) { 
			File file = new File(Environment.getExternalStorageDirectory()
					.toString()
					+ File.separator
					+ DIR
					+ File.separator
					+ FILENAME); 
			if (!file.getParentFile().exists()) { 
				file.getParentFile().mkdirs(); 
			}
			Scanner scan = null; 
			StringBuilder sb = new StringBuilder();
			try {
				scan = new Scanner(new FileInputStream(file));
				while (scan.hasNext()) { 
					sb.append(scan.next() + "\n"); 
				}
				return sb.toString();
			} catch (Exception e) {
				e.printStackTrace();
			} finally {
				if (scan != null) {
					scan.close();
				}
			}
		} else {
			showToast("读取失败,SD卡不存在!");
		}
		return null;
	}
}

三.数据库存储

package fragment;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.webkit.WebView.FindListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

import com.fmx.demo.ListAdapter;
import com.fmx.demo.ListData;
import com.fmx.demo.R;
import com.fmx.demo.SQliteDB;

public class Fragment3 extends Fragment implements OnClickListener {
    private EditText edit13, edit23, edit33, edit43;
    private Button btn13, btn23, btn33, btn43;
    private ListView list3;
    private List<ListData> list;
    private ListAdapter adapter;
    private SQliteDB db;

    @Override
    @Nullable
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View rootView = inflater.inflate(R.layout.fragment_xml3, container,
                false);
        initViews(rootView);
        return rootView;
    }

    private void initViews(View rootView) {
        // TODO Auto-generated method stub
        edit13 = (EditText) rootView.findViewById(R.id.edit1_3);
        edit23 = (EditText) rootView.findViewById(R.id.edit2_3);
        edit33 = (EditText) rootView.findViewById(R.id.edit3_3);
        edit43 = (EditText) rootView.findViewById(R.id.edit4_3);
        btn13 = (Button) rootView.findViewById(R.id.btn1_3);
        btn23 = (Button) rootView.findViewById(R.id.btn2_3);
        btn33 = (Button) rootView.findViewById(R.id.btn3_3);
        btn43 = (Button) rootView.findViewById(R.id.btn4_3);
        btn13.setOnClickListener(this);
        btn23.setOnClickListener(this);
        btn33.setOnClickListener(this);
        btn43.setOnClickListener(this);
        list3 = (ListView) rootView.findViewById(R.id.list3);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        int code = v.getId();
        switch (code) {
        case R.id.btn1_3:// 创建
            setDataBase();
            insert2DB();
            break;
        case R.id.btn2_3:// 查找
            setDataBase();
            query2DB();
            break;
        case R.id.btn3_3:// 修改
            setDataBase();
            update2DB();
            break;
        case R.id.btn4_3:// 删除
            delete2DB();
            break;
        }
    }

    private void delete2DB() {
        // TODO Auto-generated method stub
        SQLiteDatabase dataBase = db.getWritableDatabase();
        if (!edit13.getText().toString().equals(" ")) {
            dataBase.delete("users", "name=?", new String[] { edit13.getText()
                    .toString() });
            db.close();
            dataBase.close();
            Toast.makeText(getActivity(), "删除完成", Toast.LENGTH_SHORT).show();
            clean2EditText();
        } else {
            Toast.makeText(getActivity(), "输入姓名以删除", Toast.LENGTH_SHORT).show();
        }
    }

    private void update2DB() {
        // TODO Auto-generated method stub
        SQLiteDatabase dataBase = db.getWritableDatabase();
        ContentValues values = new ContentValues();
        if (!edit13.getText().toString().equals(" ")) {
            values.put("name", edit13.getText().toString());
            values.put("age", edit23.getText().toString());
            values.put("phone", edit33.getText().toString());
            values.put("address", edit43.getText().toString());
            dataBase.update("users", values, "name=?", new String[] { edit13
                    .getText().toString() });
            dataBase.close();
            db.close();
            Toast.makeText(getActivity(), "信息已更新", Toast.LENGTH_SHORT).show();
            clean2EditText();
        } else {
            Toast.makeText(getActivity(), "第一行姓名不可为空", Toast.LENGTH_SHORT)
                    .show();
        }
    }

    protected void setDataBase() {
        db = new SQliteDB(getActivity());
    }

    protected void query2DB() {
        SQLiteDatabase dataBase = db.getWritableDatabase();
        Cursor cursor = dataBase.query("users", null, null, null, null, null,
                null);
        cursor.moveToFirst();
        list = new ArrayList<ListData>();
        ListData dataTitle = new ListData("姓名", "年龄", "电话", "住址");
        list.add(dataTitle);
        do {
            String name = cursor.getString(0);
            String age = cursor.getString(1);
            String phone = cursor.getString(2);
            String address = cursor.getString(3);
            Log.i("Fragment3", name + "---" + age + "---" + phone + "---"
                    + address);
            ListData data = new ListData(name, age, phone, address);
            list.add(data);
        } while (cursor.moveToNext());
        adapter = new ListAdapter(getActivity(), list);
        list3.setAdapter(adapter);
        dataBase.close();
        db.close();
    }

    protected void insert2DB() {
        if (!edit13.getText().toString().equals(" ")
                || !edit23.getText().toString().equals(" ")
                || !edit33.getText().toString().equals(" ")
                || !edit43.getText().toString().equals(" ")) {
            SQLiteDatabase dataBase = db.getWritableDatabase();
            ContentValues values = new ContentValues();
            values.put("name", edit13.getText().toString());
            values.put("age", edit23.getText().toString());
            values.put("phone", edit33.getText().toString());
            values.put("address", edit43.getText().toString());
            dataBase.insert("users", null, values);
            dataBase.close();
            db.close();
            Toast.makeText(getActivity(), "添加数据成功", Toast.LENGTH_SHORT).show();
            clean2EditText();
        } else {
            Toast.makeText(getActivity(), "不要留空白", Toast.LENGTH_SHORT).show();
        }
    }

    protected void clean2EditText() {
        edit13.setText(" ");
        edit23.setText(" ");
        edit33.setText(" ");
        edit43.setText(" ");
    }
}



然后是DBHelper

package com.fmx.demo;

import android.content.Context;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class SQliteDB extends SQLiteOpenHelper {
    private static final String DB_NAME = "demo";
    private static final String CREATE_TABLE = "create table users(name char(20) primary key,age char(5),phone char(15),address char(30))";
    private static final int VERSION = 1;

    public SQliteDB(Context context, String name, CursorFactory factory,
            int version, DatabaseErrorHandler errorHandler) {
        super(context, name, factory, version, errorHandler);
        // TODO Auto-generated constructor stub
    }

    public SQliteDB(Context context, String name, CursorFactory factory,
            int version) {
        super(context, name, factory, version, null);
        // TODO Auto-generated constructor stub
    }

    public SQliteDB(Context context) {
        super(context, DB_NAME, null, VERSION, null);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL(CREATE_TABLE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub

    }

}



在这里,因为有查询数据,显示为表格的形式,所以就使用ListView的形式来显示,所以就把Adapter也贴出来

package com.fmx.demo;

import java.util.List;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

public class ListAdapter extends BaseAdapter {
	private Context context;
	private List<ListData> list;

	public ListAdapter(Context context, List<ListData> list) {
		// TODO Auto-generated constructor stub
		this.context = context;
		this.list = list;
	}

	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return list.size();
	}

	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		ViewHolder viewHolder = null;
		if (convertView == null) {
			convertView = LayoutInflater.from(context).inflate(
					R.layout.list_item, null);
			viewHolder = new ViewHolder();
			viewHolder.nameItem = (TextView) convertView
					.findViewById(R.id.name_item);
			viewHolder.ageItem = (TextView) convertView
					.findViewById(R.id.age_item);
			viewHolder.phoneItem = (TextView) convertView
					.findViewById(R.id.phone_item);
			viewHolder.addressItem = (TextView) convertView
					.findViewById(R.id.address_item);
			convertView.setTag(viewHolder);
		} else {
			viewHolder = (ViewHolder) convertView.getTag();
		}
		viewHolder.nameItem.setText(list.get(position).getName());
		viewHolder.ageItem.setText(list.get(position).getAge());
		viewHolder.phoneItem.setText(list.get(position).getPhone());
		viewHolder.addressItem.setText(list.get(position).getAddress());
		return convertView;
	}

	class ViewHolder {
		TextView nameItem;
		TextView ageItem;
		TextView phoneItem;
		TextView addressItem;
	}
}
四.ContentProvider

这里仅仅是写了个读取短信的功能,并没写对外使用的uri,所以。。。可以参考学习下

package fragment;

import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;

import com.fmx.demo.R;
import com.fmx.demo.SMSAdapter;
import com.fmx.demo.SMSData;

public class Fragment4 extends Fragment {
	private ListView list4;
	private List<SMSData> list;
	private SMSAdapter smsAdapter;

	/**
	 * 通讯录是:“./data/data/com.android.providers.contacts/databases/contacts2.db”
	 * 短信是:“./data/data/com.android.providers.telephony/databases/mmssms.db”
	 */
	@Override
	@Nullable
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		View rootView = inflater.inflate(R.layout.fragment_xml4, container,
				false);
		initViews(rootView);
		initData();
		return rootView;
	}

	private void initData() {
		// TODO Auto-generated method stub
		Uri uri = Uri.parse("content://sms/");
		ContentResolver resolver = getActivity().getContentResolver();
		Cursor cursor = resolver.query(uri, new String[] { "address", "body",
				"date" }, null, null, null);
		cursor.moveToFirst();
		list = new ArrayList<SMSData>();
		do {
			String address = cursor.getString(0);// 手机号码
			String body = cursor.getString(1); // 短信内容
			String date = cursor.getString(2);// 日期
			Log.i("Fragment4", address + "----" + body + "----"
					+ string2Data(date));
			SMSData smsData = new SMSData("from:" + address, body,
					string2Data(date));
			list.add(smsData);
		} while (cursor.moveToNext());
		smsAdapter = new SMSAdapter(getActivity(), list);
		list4.setAdapter(smsAdapter);
	}

	private void initViews(View rootView) {
		// TODO Auto-generated method stub
		list4 = (ListView) rootView.findViewById(R.id.list4);
	}

	protected String string2Data(String date) {
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat(
				"yyyy-MM-dd HH:mm:ss");
		Timestamp time = new Timestamp(Long.parseLong(date));
		return simpleDateFormat.format(time);
	}
}


这里也是使用了ListView和上一个基本一样,所以不再赘述

下午更新了下ContentProvider,使用了数据库存储中的 数据库 ,对外使用ContentProvider,首先新建class ContentProviderTest extends ContentProvider ,然后在manifest里面注册

<provider
            android:name="com.fmx.demo.ContentProviderTest"
            android:authorities="com.fmx.demo.demo" >
        </provider>

这两部操作完毕以后,丰富下

ContentProviderTest 类

package com.fmx.demo;

import android.content.ContentProvider;
import android.content.ContentValues;
import android.content.Context;
import android.content.UriMatcher;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;

public class ContentProviderTest extends ContentProvider {
	private static final String TAG = "ContentProviderTest";
	private static final String PROVIDER_URI = "com.fmx.demo.demo";
	private static final Uri USERS = Uri.parse("content://" + PROVIDER_URI
			+ "/users");
	private static final int USERS_CODE = 0;
	private static final UriMatcher mUriMatcher = new UriMatcher(
			UriMatcher.NO_MATCH);
	static {
		mUriMatcher.addURI(PROVIDER_URI, "users", USERS_CODE);// 关联Uri和Uri_Code
	}
	private SQLiteDatabase sqLiteDatabase;
	private SQliteDB db;
	private Context context;

	protected String backDbTableName(Uri uri) {
		String name = null;
		switch (mUriMatcher.match(uri)) {
		case USERS_CODE:
			name = "users";
			break;
		}
		return name;

	}

	@Override
	public int delete(Uri uri, String selection, String[] selectionArgs) {
		// TODO Auto-generated method stub
		String tableName = backDbTableName(uri);
		db = new SQliteDB(context);
		sqLiteDatabase = db.getReadableDatabase();
		return sqLiteDatabase.delete(tableName, selection, selectionArgs);
	}

	@Override
	public String getType(Uri uri) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Uri insert(Uri uri, ContentValues values) {
		// TODO Auto-generated method stub
		String tableName = backDbTableName(uri);
		db = new SQliteDB(context);
		sqLiteDatabase = db.getReadableDatabase();
		sqLiteDatabase.insert(tableName, null, values);
		context.getContentResolver().notifyChange(uri, null);
		return uri;
	}

	@Override
	public boolean onCreate() {
		// TODO Auto-generated method stub
		context = getContext();
		return true;
	}

	@Override
	public Cursor query(Uri uri, String[] projection, String selection,
			String[] selectionArgs, String sortOrder) {
		// TODO Auto-generated method stub
		String tableName = backDbTableName(uri);
		db = new SQliteDB(context);
		sqLiteDatabase = db.getReadableDatabase();
		return sqLiteDatabase.query(tableName, projection, selection,
				selectionArgs, null, null, sortOrder);
	}

	@Override
	public int update(Uri uri, ContentValues values, String selection,
			String[] selectionArgs) {
		// TODO Auto-generated method stub
		String tableName = backDbTableName(uri);
		db = new SQliteDB(context);
		sqLiteDatabase = db.getReadableDatabase();
		return sqLiteDatabase.update(tableName, values, selection,
				selectionArgs);
	}
}

然后测试
import java.util.ArrayList;
import java.util.List;

import com.fmx.demo.ListAdapter;
import com.fmx.demo.ListData;
import com.fmx.demo.R;

import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

public class ContectTest extends Activity implements OnClickListener {
    private EditText edit13, edit23, edit33, edit43;
    private Button btn13, btn23, btn33, btn43;
    private ListView list3;
    private List<ListData> list;
    private ListAdapter adapter;
    private Uri uri = Uri.parse("content://com.fmx.demo.demo/users");

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_xml3);
        initView();
    }

    private void initView() {
        // TODO Auto-generated method stub
        edit13 = (EditText) findViewById(R.id.edit1_3);
        edit23 = (EditText) findViewById(R.id.edit2_3);
        edit33 = (EditText) findViewById(R.id.edit3_3);
        edit43 = (EditText) findViewById(R.id.edit4_3);
        btn13 = (Button) findViewById(R.id.btn1_3);
        btn23 = (Button) findViewById(R.id.btn2_3);
        btn33 = (Button) findViewById(R.id.btn3_3);
        btn43 = (Button) findViewById(R.id.btn4_3);
        btn13.setOnClickListener(this);
        btn23.setOnClickListener(this);
        btn33.setOnClickListener(this);
        btn43.setOnClickListener(this);
        list3 = (ListView) findViewById(R.id.list3);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        int code = v.getId();
        switch (code) {
        case R.id.btn1_3:// 创建
            insert();
            break;
        case R.id.btn2_3:// 查找
            query();
            break;
        case R.id.btn3_3:// 修改
            update();
            break;
        case R.id.btn4_3:// 删除
            delete();
            break;
        }
    }

    private void delete() {
        // TODO Auto-generated method stub
        ContentResolver resolver = getContentResolver();
        if (!edit13.getText().toString().equals(" ")) {
            resolver.delete(uri, "name=?", new String[] { edit13.getText()
                    .toString() });
        } else {
            showToast("请输入姓名");
        }
    }

    private void update() {
        // TODO Auto-generated method stub
        ContentResolver resolver = getContentResolver();
        if (!edit13.getText().toString().equals(" ")) {
            ContentValues values = new ContentValues();
            values.put("age", edit23.getText().toString());
            values.put("phone", edit33.getText().toString());
            values.put("address", edit43.getText().toString());
            resolver.update(uri, values, "name=?", new String[] { edit13
                    .getText().toString() });
            clean2EditText();
            showToast("修改完毕,请查看");
        } else {
            showToast("请输入姓名");
        }
    }

    private void query() {
        // TODO Auto-generated method stub
        ContentResolver resolver = getContentResolver();
        Cursor cursor = resolver.query(uri, null, null, null, null);
        cursor.moveToFirst();
        list = new ArrayList<ListData>();
        ListData dataTitle = new ListData("姓名", "年龄", "电话", "住址");
        list.add(dataTitle);
        do {
            String name = cursor.getString(0);
            String age = cursor.getString(1);
            String phone = cursor.getString(2);
            String address = cursor.getString(3);
            Log.i("ContectTest", name + "---" + age + "---" + phone + "---"
                    + address);
            ListData data = new ListData(name, age, phone, address);
            list.add(data);
        } while (cursor.moveToNext());
        adapter = new ListAdapter(ContectTest.this, list);
        list3.setAdapter(adapter);
    }

    private void insert() {
        // TODO Auto-generated method stub
        ContentResolver resolver = getContentResolver();
        if (!edit13.getText().toString().equals(" ")
                || !edit23.getText().toString().equals(" ")
                || !edit33.getText().toString().equals(" ")
                || !edit43.getText().toString().equals(" ")) {
            ContentValues values = new ContentValues();
            values.put("name", edit13.getText().toString());
            values.put("age", edit23.getText().toString());
            values.put("phone", edit33.getText().toString());
            values.put("address", edit43.getText().toString());
            resolver.insert(uri, values);
            clean2EditText();
            showToast("插入新数据完毕,请查看");
        } else {
            showToast("请输入完整的信息");
        }
    }

    private void showToast(String msg) {
        Toast.makeText(ContectTest.this, msg, Toast.LENGTH_SHORT).show();
    }

    protected void clean2EditText() {
        edit13.setText(" ");
        edit23.setText(" ");
        edit33.setText(" ");
        edit43.setText(" ");
    }
}


五.网络存储


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值