Я пытаюсь создать средство просмотра карт в android для игры с карточной карточкой. Мой план состоял в том, чтобы использовать arraylist для заполнения карт в базе данных. Я бы прочитал все значения из файла и будет отображаться через listview. Мой код списка и код arraylist в порядке (после тестирования без использования ввода файла). Проблема возникает, когда я пытаюсь прочитать из файла. Я в недоумении, что делать. Когда я запускаю программу, это происходит сбой. Когда я удаляю метод parseInt (потому что я читаю целое число из файла), он запускается, но ни одна из моих данных не заполняется. Что не так с моим кодом?читать файл из активов android
import android.content.Intent;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import java.util.ArrayList;
import java.io.*;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class DeckBuilderActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_deck_builder);
//populate database************************************************************************
ArrayList<Card> database = new ArrayList<Card>(); //create new arraylist of datatype card
//value holders
String cardName, expansion, cardNum, unitType, unitClan, unitRace, trigger, unitSkill, cardLore,
imageId;
int unitGrade, unitPower, unitShield;
//exception handling
try{
String myfile = "cardmaindatabase.txt";
InputStream inputReader = getAssets().open(myfile);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputReader)); //open file
//begin populating with a for loop
int i = 0; //incrementer
while(reader.readLine() != null) //while not end of file
{
//assign values to placeholders
//add new card and take parameters
database.add(new Card());
database.get(i).setCardName(reader.readLine());
database.get(i).setExpansion(reader.readLine());
database.get(i).setCardNum(reader.readLine());
database.get(i).setUnitGrade(Integer.parseInt(reader.readLine()));
}
} catch (IOException e) {
e.printStackTrace();
}
//******************************************************************************************
//populate arraylist
ArrayAdapter<Card> adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, database);
ListView lv = (ListView) findViewById(R.id.card_database_listview);
lv.setAdapter(adapter);
}
Какая ошибка вы видите в logcat, когда ваше приложение выходит из строя? –
это странно. В нем говорится, что при чтении значения произошло столкновение со смертельным исходом. Вызывает это недопустимое целое число. Я не уверен, как он читает эти данные как целое число, когда я намереваюсь его читать как строку. –
Возможно, ваш файл не находится в папке «Активы». Вы уверены, что ваш файл находится в папке src/main/assets /? –