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线程。
本文介绍了如何在Android应用中使用TextView动态显示文件内容,包括在activity_textview.xml中设置滚动条属性,以及在LogActivity中通过Handler跨线程更新UI,确保文件内容的实时显示。

5319

被折叠的 条评论
为什么被折叠?



