我在学安卓,看一本书,照着例子做。
有一个网络的例子,做不出来。
这个例子是这样的:
(1)、AndroidManifest.xml添加了权限:
<uses-permission android:name="android.permission.INTERNET"/>
(2)、布局文件里有一个文本框,两个编辑框,一个按钮。
实现功能是按下按钮,第二个编辑框显示第一个编辑框里的网址所对应的内容。
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Enter URL" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:text="http://innovator.samsungmobile.com">
<requestFocus />
</EditText>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="click here" />
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10" />
(3)、主文件如下:
TextView textView1;
TextView textView2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt=(Button)findViewById(R.id.button1);
textView1=(TextView)findViewById(R.id.editText1);
textView2=(TextView)findViewById(R.id.editText2);
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
//此处防止抛出异常
.detectDiskWrites()
.detectDiskReads()
.detectNetwork()
.penaltyLog()
.build());
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
.detectLeakedSqlLiteObjects()
.detectLeakedClosableObjects()
.penaltyLog()
.penaltyDeath()
.build());
bt.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
textView2.setText("");
try{
/*Java Networking API*/
URL url=new URL(textView1.getText().toString());
URLConnection conn=url.openConnection();
/*Read the Response*/
BufferedReader rd=new BufferedReader(new
InputStreamReader(conn.getInputStream()));
String line="";
while((line=rd.readLine())!=null){
textView2.append(line);
}
}catch (Exception exe){
exe.printStackTrace();
}
}
});
此帖出自
Linux与安卓论坛
执行到InputStreamReader(conn.getInputStream()));这一句,就跳到
catch (Exception exe){这儿来了。
一周热门 更多>