1 来源
/android-83021-1-1.html
从这个地方下载了一个android 文本阅读器,比较简单,稍微分析以下。
2 代码不是很难,记录以下阅读中遇到的问题;
2.1TxtReader.java 程序的入口。
这个里面注意下menu的用法就可以了
创建menu
public boolean onCreateOptionsMenu(Menu menu) {
//This class is used to instantiate menu XML files into Menu objects.
MenuInflater inflater = this.getMenuInflater();
inflater.inflate(R.menu.menu, menu);//menu的设置是在menu下的menu.xml
menu.removeItem(R.id.gb2312);//不显示对应的id的menu
menu.removeItem(R.id.utf8);
}
选择menu以后触发
public boolean onOptionsItemSelected(MenuItem item) {
witch (item.getItemId())
{
}
}
用一个click监听,然后用intent跳转到
2.2
ListAllFileActivity.java上。
这个文件里面有android 文件目录的操作。
主要是目录遍历和文件目录判断。
我们看下这个方法:
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Intent intent = new Intent(ListAllFileActivity.this, ViewFile.class);
bundle = new Bundle();
File file = fileNameList.get(position);
if (file.isDirectory())
{
File[] f = file.listFiles();
fill(f);
}
else {
bundle.putString(FileNameKey, file.getAbsolutePath());
intent.putExtras(bundle);
startActivityForResult(intent, 0);
}
}
这里说下:
startActivityForResult与startActivity的不同之处在于:
1、startActivity( )
仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( )。
2、startActivityForResult( )
可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity, 而当这个Text2Activity调用了finish()方法以后,程序会自动跳转回T1Activity,并调用前一个T1Activity中的onActivityResult( )方法。
3Bundle类是一个key-value对,“A mapping from String values to various Parcelable types.” /randyjiawenjie/article/details/6651437
2.3
ViewFile
文件流的操作和编码设置。
3 感觉还可以加的功能:
书架。
目录和文件的区分,txt文件的搜索。
背景颜色变化,调转到文件的某个地方,标签,目录生成,文字大小变化。
联网下载图书。
如果觉得《Android 文本阅读器源代码 学习》对你有帮助,请点赞、收藏,并留下你的观点哦!