不同APP通过SharedPreferences传递数据(共享数据)

来源:互联网 发布:mac mobi convert 编辑:程序博客网 时间:2024/06/06 02:57

1、写入数据APP

[java] view plain copy
print?
  1. public class MainActivity extends Activity {  
  2.   
  3.     private SharedPreferences putPreferences;  
  4.     private Editor putEditor;  
  5.   
  6.     @Override  
  7.     protected void onCreate(Bundle savedInstanceState) {  
  8.         super.onCreate(savedInstanceState);  
  9.         setContentView(R.layout.activity_main);  
  10.   
  11.         // 将服务器信息写入serverInfo.xml  
  12.         findViewById(R.id.buttonPut).setOnClickListener( new View.OnClickListener() {  
  13.               
  14.             @Override  
  15.             public void onClick(View v) {  
  16.                 // TODO Auto-generated method stub  
  17.                 putPreferences = getSharedPreferences("serverInfo", Context.MODE_WORLD_READABLE);  
  18.                 putEditor = putPreferences.edit();  
  19.                 putEditor.putString("serverIP""192.168.1.102");  
  20.                 putEditor.putString("password""123456");  
  21.                 putEditor.commit();  
  22.                 Toast.makeText(MainActivity.this,"服务器信息成功写入serverInfo.xml", Toast.LENGTH_LONG).show();  
  23.             }  
  24.                       
  25.         });  
  26.           
  27.     }  
  28.   
  29.     @Override  
  30.     public boolean onCreateOptionsMenu(Menu menu) {  
  31.         // Inflate the menu; this adds items to the action bar if it is present.  
  32.         getMenuInflater().inflate(R.menu.main, menu);  
  33.         return true;  
  34.     }  
  35.   
  36. }  








2、获取数据APP

[java] view plain copy
print?
  1. public class MainActivity extends Activity {  
  2.   
  3.     private SharedPreferences getPreferences;  
  4.       
  5.     @Override  
  6.     protected void onCreate(Bundle savedInstanceState) {  
  7.         super.onCreate(savedInstanceState);  
  8.         setContentView(R.layout.activity_main);  
  9.           
  10.         //从serverInfo.xml获取服务器信息  
  11.         findViewById(R.id.buttonGet).setOnClickListener(new View.OnClickListener() {  
  12.               
  13.             @Override  
  14.             public void onClick(View v) {  
  15.                 // TODO Auto-generated method stub  
  16.                 try {  
  17.                     Context context=createPackageContext("com.example.putprefapp", Context.CONTEXT_IGNORE_SECURITY);  
  18.                     getPreferences=context.getSharedPreferences("serverInfo", MODE_WORLD_READABLE);  
  19.                     String serverIP=getPreferences.getString("serverIP","");  
  20.                     String serverPwd=getPreferences.getString("password""");  
  21.                     Toast.makeText(MainActivity.this"服务器信息如下:IP地址:" +serverIP+"; 密码:"+serverPwd, Toast.LENGTH_LONG).show();  
  22.                 } catch (NameNotFoundException e) {  
  23.                     // TODO Auto-generated catch block  
  24.                     e.printStackTrace();  
  25.                 }  
  26.             }  
  27.         });  
  28.           
  29.     }  
  30.   
  31.     @Override  
  32.     public boolean onCreateOptionsMenu(Menu menu) {  
  33.         // Inflate the menu; this adds items to the action bar if it is present.  
  34.         getMenuInflater().inflate(R.menu.main, menu);  
  35.         return true;  
  36.     }  
  37.   
  38. }  


3、关于android:sharedUserId

        上面的两个工程中并没有对Android:sharedUserId属性进行设置。这个属性是在查资料时看到的:意思是说,在manifest.xml里面将两个应用程序的android:sharedUserId属性设为相同的就可以对SharedPreferences文件进行写。(此处并没有验证)

0 0
原创粉丝点击