我想在android stodio中创建一本书 例如:我想要当我单击first_season按钮打开text1.txt文件,并且当我单击second_season按钮打开text2.txt文件时,其余部分如我所说。 而且我不想为每个页面进行活动。 我想使用开关案例获取按钮ID,并基于该ID打开文本文件。 我只想知道如何使用开关盒来创建此应用程序。 我使用此代码打开txt文件:
TextView txtView = (TextView)findViewById(R.id.hellotxt);
InputStream inputStream = getResources().openRawResource(R.raw.nitish);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
int i;
try {
i = inputStream.read();
while (i != -1)
{
byteArrayOutputStream.write(i);
i = inputStream.read();
}
inputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
txtView.setText(byteArrayOutputStream.toString());
考虑我的按钮名称是 第1季,第2季,第3季,第4季 和我的文本文件的名称是 txt1,txt2,txt3,txt4 感谢您的帮助
答案 0 :(得分:0)
您的意思是这样的
Map<Int, String> lookupTable = new HashMap<>();
lookupTable.put(R.id.season1, "txt1");
lookupTable.put(R.id.season2, "txt2");
// etc
for (Map.Entry<String,String> entry : lookupTable.entrySet()) {
findViewById(entry.getKey()).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txtView.setText(readBookPageFromFile(entry.getValue());
}
})
}
readBookPageFromFile
是您上面的代码,其中文件名作为参数。