用TextView动态显示文件内容

来源:互联网 发布:淘宝带刷 编辑:程序博客网 时间:2024/05/29 18:19

1. 设置布局文件activity_textview.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <TextView        android:id="@+id/content"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:scrollbars="vertical"        android:fadeScrollbars="false" /></LinearLayout>

    android:scrollbars="vertical"为TextView设置滚动条,android:fadeScrollbars="false"设置滚动条不隐藏。也可用         ScrollView实现。

    另外还要在Activity中调用setMovementMethod方法。

2. LogActivity

public class LogActivity extends Activity{private TextView mTextView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_textview);mTextView = (TextView)findViewById(R.id.content);mTextView.setMovementMethod(ScrollingMovementMethod.getInstance());new DataThread().start();}private Handler mHandler = new Handler() {public void handleMessage(android.os.Message msg){mTextView.setText((String)msg.obj);}};class DataThread extends Thread{@Overridepublic void run() {while(true){try{BufferedReader in = new BufferedReader(new FileReader("/sdcard/log"));String line;StringBuilder sb = new StringBuilder();while((line = in.readLine()) != null){sb.append(line+'\n');}mHandler.sendMessage(mHandler.obtainMessage(0, sb.toString()));in.close();Thread.sleep(2000);} catch(IOException e){e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();}}}}}

    这里要不断的获取文件内容更新UI,所以文件的操作另外开个线程运行,利用Hander发送数据到UI线程。


0 0
原创粉丝点击