Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 878|回复: 0

[实例教程]Android 小项目之--数据存储【Network】(附源码)

[复制链接]

该用户从未签到

发表于 2011-10-22 12:41:44 | 显示全部楼层 |阅读模式
将数据保存发送到电子邮件中备份,首要前提应该先在模拟器中设置好电子邮件帐户,设置如下:
第一步,启动模拟器,打开“菜单”,选择“电子邮件”项,填写相应帐号和密码。

第二步,点击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:285735942@qq.com");

            //创建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地址,然后取链接的文件,循环把数据读取出来。具体代码参考如下:
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"/>
至此四种数据存储完结。 源码下载:  NetworkdDemo.rar (43.01 KB, 下载次数: 5)
回复

使用道具 举报

该用户从未签到

发表于 2011-10-22 12:41:49 | 显示全部楼层

Re:[实例教程]Android

很好
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-22 12:42:09 | 显示全部楼层

Re:[实例教程]Android

谢谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-22 16:53 , Processed in 0.404479 second(s), 47 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表