I have a file containing text in separate line.
I want to display line first, and then if I press a button, the second line should be displayed in the TextView
and the first line should disappear. Then, if I press it again, the third line should be displayed and so on.
Should I have to use TextSwitcher
or anything else?
How can I do that?
We can use java. io. BufferedReader readLine() method to read file line by line to String. This method returns null when end of file is reached.
Method 1: Read a File Line by Line using readlines() readlines() is used to read all the lines at a single go and then return them as each line a string element in a list. This function can be used for small files, as it reads the whole file content to the memory, then split it into separate lines.
Reading a File Line-by-Line in Python with readline() This code snippet opens a file object whose reference is stored in fp , then reads in a line one at a time by calling readline() on that file object iteratively in a while loop. It then simply prints the line to the console.
You tagged it as "android-assets" so I'm going to assume your file is in the assets folder. Here:
InputStream in;
BufferedReader reader;
String line;
TextView text;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
text = (TextView) findViewById(R.id.textView1);
in = this.getAssets().open(<your file>);
reader = new BufferedReader(new InputStreamReader(in));
line = reader.readLine();
text.setText(line);
Button next = (Button) findViewById(R.id.button1);
next.setOnClickListener(this);
}
public void onClick(View v){
line = reader.readLine();
if (line != null){
text.setText(line);
} else {
//you may want to close the file now since there's nothing more to be done here.
}
}
Give this a try. I haven't been able to verify that it works completely, but I believe this is the general idea you want to follow. Naturally you'll want to replace any R.id.textView1/button1
with the names that you've specified in your layout file.
Also: There is very little error checking here for the sake of space. You will want to check that your asset exists and I'm pretty sure there should be an try/catch
block when you open the file for reading.
Edit: Big error, It's not R.layout
, it's R.id
I have edited my answer to fix the problem.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With