当前位置:  编程技术>移动开发

Android中实现地址栏输入网址能浏览该地址网页源码并操作访问网络

    来源: 互联网  发布时间:2014-10-18

    本文导语:   首先实现简单布局: 代码如下: 在Stirng中 代码如下: http://luochuang.iteye.com/blog/1606231 浏览 显示浏览网页内容 新建类文件 :  首先MainActivity 中代码 : 代码如下: public class MainActivity extends Activity { // 声明控件 public EditTe...

 
首先实现简单布局:
代码如下:









在Stirng中
代码如下:

http://luochuang.iteye.com/blog/1606231
浏览
显示浏览网页内容

新建类文件 :
 
首先MainActivity 中代码 :
代码如下:

public class MainActivity extends Activity {
// 声明控件
public EditText et_url;
public TextView tv_ie;
// 网路操作类
public NetWorkUtils netWorkUtils;
private Handler handler;
public String content;
public static final int TEXT = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取et_url对象
et_url = (EditText) findViewById(R.id.et_url);
tv_ie = (TextView) findViewById(R.id.tv_ie);
// 实例化
netWorkUtils = new NetWorkUtils(this);
// 实例化这个处理者
handler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case TEXT:
tv_ie.setText(content);// 设置显示的文本
break;
default:
break;
}
}
};
}
@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;
}
public void sendHttp(View v) {
// 设置网络
boolean flag = netWorkUtils.setActiveNetWork();
if (flag) {
// run方法 执行完毕 这个线程就消耗了
// 子线程
new Thread(new Runnable() {
@Override
public void run() {
send();
handler.sendEmptyMessage(TEXT);
}
}).start();
}
}
// 发送请求操作
@SuppressLint("NewApi")
public void send() {

// 获取url的path路径
String path = et_url.getText().toString();
if (path.isEmpty()) {
Toast.makeText(MainActivity.this, "访问 的url地址不能为空",
Toast.LENGTH_LONG).show();
} else {
content = HttpUtils.sendGet(path);
}



/*// 设置网络
netWorkUtils.setActiveNetWork();
// 获取url的path路径
String path = et_url.getText().toString();
if (path.isEmpty()) {
Toast.makeText(MainActivity.this, "访问 的url地址不能为空",
Toast.LENGTH_LONG).show();
} else {
try {
// 设置访问的url
URL url = new URL(/tech-mobile-dev/path/index.html);
// 打开请求
HttpURLConnection httpURLConnection = (HttpURLConnection) url
.openConnection();
// 设置请求的信息
httpURLConnection.setRequestMethod("GET");
// 判断服务器是否响应成功
if (httpURLConnection.getResponseCode() == 200) {
// 获取响应的输入流对象
InputStream is = httpURLConnection.getInputStream();
// 字节输出流
ByteArrayOutputStream bops = new ByteArrayOutputStream();
// 读取数据的缓存区
byte buffer[] = new byte[1024];
// 读取长度记录
int len = 0;
// 循环读取
while ((len = is.read(buffer)) != -1) {
bops.write(buffer, 0, len);
}
// 把读取的内容转换成byte数组
byte data[] = bops.toByteArray();
// 把转换成字符串
content = new String(data);
} else {
Toast.makeText(MainActivity.this, "服务器响应错误",
Toast.LENGTH_LONG).show();
}
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}*/
}
}

代码如下:

public class HttpUtils {


public static String sendGet(String path) {
String content = null;
try {
// 设置访问url
URL url = new URL(/tech-mobile-dev/path/index.html);
// 打开请求
HttpURLConnection httpURLConnection = (HttpURLConnection) url
.openConnection();
// 设置请求的信息
httpURLConnection.setRequestMethod("GET");
// 设置请求是否超时时间
httpURLConnection.setConnectTimeout(5000);
// 判断服务器是否响应成功
if (httpURLConnection.getResponseCode() == 200) {
// 获取响应的输入流对象
InputStream is = httpURLConnection.getInputStream();
byte data[] = StreamTools.isToData(is);
// 把转换成字符串
content = new String(data);
// 内容编码方式
if (content.contains("gb2312")) {
content = new String(data, "gb2312");
}
}
// 断开连接
httpURLConnection.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return content;
}
}

代码如下:

public class StreamTools {
public static byte[] isToData(InputStream is) throws IOException{

//字节输出流
ByteArrayOutputStream bops = new ByteArrayOutputStream();
//读取数据的缓存区
byte buffer[] = new byte[1024];
//读取长度 的记录
int len = 0;
//循环读取
while((len = is.read(buffer)) != -1){
bops.write(buffer, 0, len);
}
//把读取的内容转换成 byte数组
byte data[] = bops.toByteArray();

return data;

}
}

代码如下:

public class NetWorkUtils {
private Context context;
// 网路链接管理对象
public ConnectivityManager connectivityManager;
public NetWorkUtils(Context context) {
this.context = context;
// 获取网络链接的对象
connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
}
//public void setActiveNetWork() {
public boolean setActiveNetWork() {
boolean flag = false;
// 获取可用的网络链接对象
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo == null) {
new AlertDialog.Builder(context)
.setTitle("网络不可用")
.setMessage("可以设置网络?")
.setPositiveButton("确认",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
Toast.makeText(context, "点击确认",
Toast.LENGTH_LONG).show();
// 声明意图
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory("android.intent.category.LAUNCHER");
intent.setComponent(new ComponentName(
"com.android.settings",
"com.android.settings.Settings"));
intent.setFlags(0x10200000);
// 执行意图
context.startActivity(intent);
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
}
// 必须.show();
}).show();
}
//判断网络是否可用
if(networkInfo!=null){
flag=true;
}
return flag;
}
}

然后就是要在AndroidManifest.xml中添加 可以访问网络的权限
代码如下:




    
 
 

您可能感兴趣的文章:

  • Android中实现EditText圆角的方法
  • Android中实现HashMap排序的方法
  • Android中实现Runnable接口简单例子
  • Android自定义View设定到FrameLayout布局中实现多组件显示的方法 分享
  • Android中实现为TextView添加多个可点击的文本
  • javascript开源软件 iis7站长之家
  • Android中实现开机自动启动服务(service)实例
  • android中实现指针滑动的动态效果方法
  • 基于Android中实现定时器的3种解决方法
  • 解析Android中实现滑动翻页之ViewFlipper的使用详解
  • Android中实现多行、水平滚动的分页的Gridview实例源码
  • 如何在Android中实现渐显按钮的左右滑动效果
  • 如何在Android中实现左右滑动的指引效果
  • Android中实现可滑动的Tab的3种方式
  • 在android中实现类似uc和墨迹天气的左右拖动效果
  • Unbutu中利用Shell自动编译Android源码
  • Android源码构建系统 Buck
  • Android修改源码解决Alertdialog触摸对话框边缘消失的问题
  • Eclipse开发环境导入android sdk的sample中的源码
  • Windows下获取Android 源码方法的详解
  • android开机自启动原理与实现案例(附源码)
  • 比较完整的android MP3 LRC歌词滚动高亮显示(附源码)
  • android apk反编译到java源码的实现方法
  • 基于Android设计模式之--SDK源码之策略模式的详解
  • Android源码学习之观察者模式应用及优点介绍
  • Android利用ViewPager实现滑动广告板实例源码
  • Android笔记之:CM9源码下载与编译的应用
  • Android源码学习之单例模式应用及优点介绍
  • Android 使用Gallery实现3D相册(附效果图+Demo源码)
  • Android源码学习之工厂方法模式应用及优势介绍
  • Android系统联系人全特效实现(上)分组导航和挤压动画(附源码)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Android中文输入法 TouchPal
  • Android 繁体中文输入法
  • Android的文本和输入之创建输入法教程
  • Android 显示和隐藏输入法实现代码
  • Android中文输入法 OpenWnn
  • android输入框与文本框加滚动条scrollview示例
  • Android实现动态显示或隐藏密码输入框的内容
  • Android键盘输入语言设置默认打开myanmar缅甸语的步骤
  • 解决Fedora14下eclipse进行android开发,ibus提示没有输入窗口的方法详解
  • Android程序打开和对输入法的操作(打开/关闭)
  • Android开发技巧之像QQ一样输入文字和表情图像
  • android 使用uinput模拟输入设备的方法
  • 申请Android Map 的API Key(v2)的最新申请方式(SHA1密钥)
  • Android瀑布流实例 android_waterfall
  • Android开发需要的几点注意事项总结
  • Android系统自带样式 (android:theme)
  • android 4.0 托管进程介绍及优先级和回收机制
  • Android网络共享软件 Android Wifi Tether
  • Android访问与手机通讯相关类的介绍
  • Android 图标库 Android GraphView
  • Android及andriod无线网络Wifi开发的几点注意事项
  • 轻量级Android开发工具 Android Tools
  • Android 2.3 下StrictMode介绍
  • Android 开发环境 Android Studio
  • IDEA的Android开发插件 idea-android
  • Android手机事件提醒 Android Notifier
  • XBMC的Android客户端 android-xbmcremote
  • Android小游戏 Android Shapes
  • Android电池监控 Android Battery Dog
  • android开发:“android:WindowTitle”没有对应项no resource
  • Android 上类似IOS 的开关控件。 Android ToggleButton


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3