您的位置:首页 > 其它

用TextView动态显示文件内容

2015-12-27 17:13 225 查看
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;

@Override
protected 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{

@Override
public 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线程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: