如何使用内容提供程序访问共享首选项

时间:2013-12-22 12:01:29

标签: java android storage sharedpreferences android-contentprovider

我有一个注册应用程序正在制作用户注册数据,另一端数据可以显示和查看和操作,我使用共享首选项方法,如下所示写入和访问数据(你可以看到它们在DataEntry.java& DataManipulation.java中显示如下)但我想使用内容提供程序方法来操作数据,如查询或插入或删除....有没有办法做到这一点,如果是的,请你告诉我怎么样?

谢谢

以下是以下代码

用户端DataEntry.java:

package com.hossa.datamanipulation;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class DataEntry extends Activity {
/*
 * here is the part the user will submit several data for several people
 */
Button Submit, BroadcastButton;
TextView User, Email, Mobile;
EditText UserEdit, EmailEdit, MobileEdit;
String UserValue, EmailValue, MobileValue;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.dataentry);
    Submit = (Button) findViewById(R.id.DataSubmit);
    BroadcastButton = (Button) findViewById(R.id.Broadcast);
    User = (TextView) findViewById(R.id.TVuser);
    Email = (TextView) findViewById(R.id.TVemail);
    Mobile = (TextView) findViewById(R.id.TVmobile);
    UserEdit = (EditText) findViewById(R.id.Edituser);
    EmailEdit = (EditText) findViewById(R.id.Editemail);
    MobileEdit = (EditText) findViewById(R.id.Editmobile);
    Submit.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            // saving the data of the user//
            SharedPreferences sp = getSharedPreferences("userdata",
                    MODE_PRIVATE);// name of the file and it's mode//
            SharedPreferences.Editor edit = sp.edit();// to be able to edit
                                                        // the file//
            edit.putString("Username", UserEdit.getText().toString());// get
                                                                        // the
                                                                        // input
                                                                        // username//
            edit.putString("Email", EmailEdit.getText().toString());// get
                                                                    // the
                                                                    // input
                                                                    // Email//
            edit.putString("Mobile", MobileEdit.getText().toString());// get
                                                                           // the
                                                                        // input
                                                                        // Mobile//
            edit.commit();
            Toast.makeText(getApplicationContext(),
                    "Data is Saved Successfully", Toast.LENGTH_SHORT)
                    .show();
        }
    });

    BroadcastButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent e = new Intent();
            e.setAction("com.hossa.data" + "manipulation.custombroadcast");
            sendBroadcast(e);
        }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

和另一端DataManipulaton.java:

import android.app.Activity;
import android.content.ContentResolver;
import android.content.Context;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class DataManipulation extends Activity {

Button ImportButton, ViewButton, RetrieveButton;
EditText UserShow;
TextView EmailDisplay, UserDisplay, MobileDisplay, EmailTV, UserTV,
        MobileTV;
public static final String defaultvalue = "N/A";

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.datamanipulation);
    ContentResolver ct = getContentResolver();
    String Path = "data/data/com.hossa.datamanipulation/files/userdata";
    Uri uri = Uri.parse("content://" + Path);
    ImportButton = (Button) findViewById(R.id.ImportButton);
    ViewButton = (Button) findViewById(R.id.ViewButton);
    RetrieveButton = (Button) findViewById(R.id.RetrieveButton);
    EmailDisplay = (TextView) findViewById(R.id.EmailDisplay);
    MobileDisplay = (TextView) findViewById(R.id.MobileDisplay);
    UserDisplay = (TextView) findViewById(R.id.UsernameDisplay);
    EmailTV = (TextView) findViewById(R.id.EmailTV2);
    UserTV = (TextView) findViewById(R.id.UserTV2);
    MobileTV = (TextView) findViewById(R.id.MobileTV2);
    final String U1[] = new String[10];
    final String E1[] = new String[10];
    final String M1[] = new String[10];
    final String[][] alldata = new String[][] { U1, M1, E1 };
    RetrieveButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            int i = 0;
            SharedPreferences spdata = getSharedPreferences("userdata",
                    Context.MODE_PRIVATE);
            while (spdata.getString("Username", defaultvalue) != null) {
                String tempuser = spdata
                        .getString("Username", defaultvalue);
                U1[i] = tempuser;
                i++;
            }
            i = 0;
            while (spdata.getString("Email", defaultvalue) != null) {
                String tempemail = spdata.getString("Email", defaultvalue);
                E1[i] = tempemail;
                i++;
            }
            i = 0;
            while (spdata.getString("Mobile", defaultvalue) != null) {
                String tempmobile = spdata
                        .getString("Mobile", defaultvalue);
                M1[i] = tempmobile;
                i++;
            }
            i = 0;
        }
    });
    ImportButton.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            getApplicationContext();

            // TODO Auto-generated method stub
            SharedPreferences sp = getSharedPreferences("userdata",
                    Context.MODE_PRIVATE);

            String Username = sp.getString("Username", defaultvalue);
            String Email = sp.getString("Email", defaultvalue);
            String Mobile = sp.getString("Mobile", defaultvalue);

            // what if there is no data from the user??//
            if (Username.equals(defaultvalue) || Email.equals(defaultvalue)
                    || Mobile.equals(defaultvalue)) {
                Toast.makeText(getApplicationContext(),
                        "no data has been entered", Toast.LENGTH_SHORT)
                        .show();
            } else {
                UserTV.setText(Username);
                EmailTV.setText(Email);
                MobileTV.setText(Mobile);
            }
        }
    });
//THE BELOW IS THE SECTION I NEED HELP WITH...THE ABOVE IS SIMPLY SOME TRIALS AND TESTS//
    Cursor c = ct.query(uri, U1, null, null, null);
    // c=ct.delete(uri, where, selectionArgs);
    // c=ct.update(uri, values, where, selectionArgs);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

请注意,两个类别都在相同的包装中,因此它是相同的应用程序而不是2个不同的应用程序

0 个答案:

没有答案