今天面魅族科技的一個題目,但是想使用httpclient來實現,現在想想太過於麻煩了
除此之外還問了一個如何設置主題和如何實現動畫、多線程等問題,答得並不是很好。
下面貼源碼,比較簡單。
注意不要在UI線程內添加複雜的操作,因此需要使用一個新的線程實現獲取頁面源碼的功能,然後利用字節流將其寫入。
package com.example.administrator.firstapplycation; import android.app.Activity; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.method.ScrollingMovementMethod; import android.view.View; import android.widget.Button; import android.widget.Scroller; import android.widget.TextView; import android.widget.Toast; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; public class MainActivity extends AppCompatActivity { TextView text1; private StringBuilder sb = new StringBuilder(); private Button btn1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text1=(TextView) this.findViewById(R.id.txt_vw); btn1 = (Button) this.findViewById(R.id.bt_cl); btn1.setOnClickListener(new BtClickListner()); //text1.setScroller(new Scroller(this));
//添加一個上下滑動效果 , 要在配置文件中將scrollbars 屬性設置爲Vertical text1.setMovementMethod(new ScrollingMovementMethod()); } class BtClickListner implements View.OnClickListener{ @Override public void onClick(View v){ new Thread(){ public void run(){ URL url; try { url = new URL("http://www.cnblogs.com/lance2016/p/6582858.html"); InputStream ins =url.openStream(); byte[] buf =new byte[1024]; int b = 0; while( (b =ins.read(buf) )!=-1){ sb.append(new String(buf,0,b)); } if(sb!=null){ runOnUiThread(new Runnable() { @Override public void run() { text1.setText(sb.toString()); } });}else{ Toast.makeText(text1.getContext(),"no data",Toast.LENGTH_LONG).show(); } ins.close(); } catch (Exception e) { e.printStackTrace(); } }}.start(); } } }