代码改变世界

Android学习点滴之一——一个简单的访问Internet应用

2012-04-28 17:52 by 贼寇在何方, ... 阅读, ... 评论, 收藏, 编辑

创建应用

用Eclipse创建一个应用(在这里吐槽一下Eclipse的界面,我这样从VS转过来的,用起来真的好苦B啊···),
命名以后,下一步必须填一个命名空间,否则不能继续下一步。

设计界面

双击那个main.xml,看到Android UI的所见即所得设计器,拖了一个ImageView和一个Button进来:

 

完了以后,main.xml的图标上就挂上了个惊叹号···以文本视图打开,看到若干错误···
Preference中搜索到Spelling,关闭Enable Spelling Check,还有两处错误:

按照提示,给ImageView加上属性

android:contentDecription="@string/image"
这个值如果写成字面的字符串值的话,就会得到和下面一样的警告,所以就在strings.xml加了一个值"image"

把Button的text改成如下形式:

android:text="@string/button"
同样的,得在strings.xml中添加值

再次抱怨下Eclipse的语法检查,都改完了还不把错误给消掉,一直显示着,不知道怎么去除···

 

添加代码

在里添加按钮点击事件的响应代码

public void clicked(View target) throws ClientProtocolException, IOException
{
    try
    {
        HttpClient client = new DefaultHttpClient();
        HttpResponse response = client.execute(new HttpGet(
                "http://static.cnblogs.com/images/logo.gif"));
        
        InputStream is = response.getEntity().getContent();
        
        Bitmap bitmap = BitmapFactory.decodeStream(is);
        
        ImageView imageView = (ImageView)this.findViewById(R.id.imageView);
        imageView.setImageBitmap(bitmap);
    }
    catch(Exception e)
    {
        Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show(); 
    }
}

当然,不能忘记把方法和按钮的onClick事件关联起来,
main.xml中添加如下代码:android:onClick="clicked"

 

声明和使用权限

原本这样就该可以执行了,结果一执行就是一个java.Net.UnknownHostException···

这是什么状况呢···不卖关子了,这是没有网络访问权限的缘故

编辑AndroidManifest.xmlPermissions,添加一个User Permission,选择Nameandroid.permission.INTERNET

重新执行,效果如下: