Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android 小項目之--數據存儲【Network】(附源碼)

Android 小項目之--數據存儲【Network】(附源碼)

編輯:Android開發實例

將數據保存發送到電子郵件中備份,首要前提應該先在模擬器中設置好電子郵件帳戶,設置如下:

  • 第一步,啟動模擬器,打開“菜單”,選擇“電子郵件”項,填寫相應帳號和密碼。
  • 第二步,點擊NEXT,程序自動配置電子郵件相關信息。
  • 第三步,配置完成後,輸入相應的名稱信息,即可設置完成,接下來程序會默認幫你導入你輸入郵箱帳號的相關信息

業務邏輯如下:示例中有一個文本框用來模擬用戶的信息,當程序退出的時候保存文本檔的信息,並轉到發送郵件的頁面,讓用戶把信息保存到郵箱 裡面。具體代碼參考如下:

發送信息保存到郵箱 package com.terry;

import android.app.Activity; 
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle; 
import android.view.KeyEvent;
import android.widget.EditText;

public class networkActivity extends Activity { 
    private EditText myEditText;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 
        
        myEditText=(EditText)findViewById(R.id.myEditText4); 
        
    }
    
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // TODO Auto-generated method stub
        if(keyCode==KeyEvent.KEYCODE_BACK)
        {
            //發送郵件地址
            Uri uri=Uri.parse("mailto:[email protected]");
            //創建intent
            Intent it=new Intent(Intent.ACTION_SENDTO,uri);
            it.putExtra(android.content.Intent.EXTRA_SUBJECT, "網絡存儲");
            it.putExtra(android.content.Intent.EXTRA_TEXT, myEditText.getText());
            startActivity(it);
            this.finish();
            return true;
        }
        
        return super.onKeyDown(keyCode, event);
    }
}

 

 

擴展

既然發送數據保存到網絡上,當然也可以獲得網絡上的數據,下面我們通過一個小例子來實現從網路上加載一個txt文件的小說程序 。如圖:

邏輯代碼如下:首先創建一個我們要訪問的URL地址,然後取鏈接的文件,循環把數據讀取出來。具體代碼參考如下:

 

讀取XML代碼參考 package com.terry;

import java.io.BufferedInputStream;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;

import org.apache.http.util.ByteArrayBuffer;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class readxmlActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.readxml);
        
        TextView tv=(TextView)findViewById(R.id.TextView01);
        
        String msg="";
        try {
            URL url=new URL("http://www.az1314.com/txt/00.txt"); //要訪問的數據文件
            URLConnection con=url.openConnection();
            InputStream is=con.getInputStream();
            BufferedInputStream bis=new BufferedInputStream(is);
            ByteArrayBuffer baf=new ByteArrayBuffer(100);
            int current=0;
            while ((current=bis.read())!= -1) {
                 baf.append((byte)current);
            }
            msg=new String(baf.toByteArray());
            
        } catch (Exception e) {
            // TODO: handle exception
            msg=e.getMessage();
        }
        tv.setText(msg);
    }
}

 

方法講解:

URL共有六種構造方法,分別如下:

  • URL(String spec)
    通過傳進來的字符串分析,創建一個新的URL實例。
  • URL(URL context, String spec)
    通過傳進來的字符串分析,創建一個新的URL實例。需要一個URL的參數
  • URL(URL context, String spec, URLStreamHandler handler)
    通過傳進來的字符串分析,創建一個新的URL實例
  • URL(String protocol, String host, String file)
    使用給定的參數創建一個URL實例,需要指定協議,主機文件名
  • URL(String protocol, String host, int port, String file)
    使用給定的參數創建一個URL實例,需要指定協議,主機,端口和文件名
  • URL(String protocol, String host, int port, String file, URLStreamHandler handler)
    使用給定的參數創建一個URL實例,需要指定協議,主機,端口、文件名和處理程序

URLConnection介紹:

  • 用以來實現提供一個具有特定協議類的連接源。
  • getInputStream  主要用來讀取一個URLConnection的資源數據,返回一個InputStream,本文將使用這個方法獲取數據

在此不多介紹URLConnection此類,感興趣的朋友可以查看一下SDK。代碼如上,運行效果圖:

因為在模擬器運行。 出現亂碼了,如果你有真機不妨在真機上試試。

Tip: 訪問外部網絡需要在配置文件中給予權限,如果你沒有權限將會出現如下界面:

權限代碼如下:

 

      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".networkActivity"
                  android:label="@string/app_name">
            
        </activity>

    <activity android:name=".readxmlActivity"><intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter></activity>
</application>
<uses-permission android:name="android.permission.INTERNET"/>

 

至此四種數據存儲完結。

 

源碼下載:/Files/TerryBlog/NetworkdDemo.rar

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved