现在的位置: 首页 > 综合 > 正文

数据操作二:SharedPreferences(分享爱好)

2018年06月06日 ⁄ 综合 ⁄ 共 3648字 ⁄ 字号 评论关闭

设计要点:

1  SharedPreferences操作:数据存储与读出,删除功能

2  监听多按键

/*
布局文件
*/
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".DataControlActivity" >

    <TextView
        android:id="@+id/ID_flower"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/flowers_list" 
        />
    
    <EditText
        android:id="@+id/ID_edit_query"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@id/ID_flower" 
        android:inputType="text" />
    
    <EditText
        android:id="@+id/ID_input"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@id/ID_edit_query"
        android:inputType="text" />
    
    <Button 
        android:id="@+id/ID_add_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/ID_input"
        android:layout_alignParentLeft="true"
        android:text="@string/add" 
        />

    <Button
        android:id="@+id/ID_delete_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/ID_add_button"
        android:layout_alignBottom="@+id/ID_add_button"
        android:layout_toRightOf="@+id/ID_add_button"
        android:text="@string/delete" />

    <Button
        android:id="@+id/ID_query_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/ID_delete_button"
        android:layout_alignBottom="@+id/ID_delete_button"
        android:layout_toRightOf="@+id/ID_delete_button"
        android:text="@string/query" />

</RelativeLayout>
/*
MainActivity
*/
package com.example.dataconrolpackage;

import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;



public class DataControlActivity extends Activity 
{
	protected Button buttonAdd,buttonDelete;
    private final int CLICK_ADD = 1;
    private final int CLICK_DELETE = 2;
    private final int CLICK_QUERY = 3;
    private SharedPreferences spData;
    private SharedPreferences.Editor spEditor;
    private EditText m_EditInput,m_EditQuery;
    
    private int m_nCount = 0;
    
	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.data_control_layout);
		
		m_EditInput = (EditText)findViewById(R.id.ID_input);
		m_EditQuery = (EditText)findViewById(R.id.ID_edit_query);
		BindButtonListenerWithId(buttonAdd,R.id.ID_add_button,CLICK_ADD);
		BindButtonListenerWithId(buttonDelete,R.id.ID_delete_button,CLICK_DELETE);
		BindButtonListenerWithId(buttonDelete,R.id.ID_query_button,CLICK_QUERY);
		
		spData = this.getSharedPreferences("flowers", MODE_PRIVATE);
		spEditor = spData.edit();
	}
	
	private void BindButtonListenerWithId(Button button,int nID,int nTagID)
	{
		button = (Button)findViewById(nID);
		button.setOnClickListener(new ClickButtonListener());
		button.setTag(nTagID);
	}
	
	private final class ClickButtonListener implements View.OnClickListener
	{
		@Override
		public void onClick(View view)
		{
	        int tag = (Integer) view.getTag();
	        switch(tag)
	        {
	        case CLICK_ADD:
	        {
	        	m_nCount++;
	        	spEditor.putString( "" + m_nCount, m_EditInput.getText().toString());
	        	spEditor.commit();
	        	m_EditInput.setText("");
	        }break;
	        case CLICK_DELETE:
	        	spEditor.remove(m_EditQuery.getText().toString());
	        	spEditor.commit();
	        	break;
	        case CLICK_QUERY:
				setTitle(spData.getString(m_EditQuery.getText().toString(), "未查到字符串"));
	        	break;
	        }
		}
	}
}

抱歉!评论已关闭.