2017-01-13 2 views
0

У меня возникли проблемы с этими строками в Android Studio. В основном я пытаюсь получить ArrayList из папки «ABC», а затем распечатать его на странице макета «activity_max» ... Android говорит мне, что есть ошибка в этой строке:Ошибка при попытке распечатать arraylist из папки

wordView.setText(max.get(index)); // ОШИБКА: cannot resolve method setText(java.io.file)

вот весь код, можете ли вы помочь мне найти проблему, пожалуйста? На самом деле я на первых шагах обучения Android и Java ... спасибо за ваше терпение ......

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_max); 

    File f = new File("file:///app/assets/abc"); 
    ArrayList<File> max = new ArrayList<>(Arrays.asList(f.listFiles())); 

    LinearLayout rootView = (LinearLayout) findViewById(R.id.activity_max); 

    for (int index = 0; index < max.size(); index ++) 

    { 
     TextView wordView = new TextView(this); 
     wordView.setText(max.get(index)); //ERROR: cannot resolve method setText(java.io.file) 
     rootView.addView(wordView); 

    } 
} 
+0

'пытается распечатать arraylist из папки'. Ужасное описание. Вы хотите распечатать имена файлов и папок в каталоге. Но ваш путь к каталогу не существует, и вы неправильно используете класс File. И вы не можете использовать класс File для файлов в активах. – greenapps

+0

'f.listFiles()' будет возвращать 'null', поэтому попытка сделать массив из него приведет к сбою вашего приложения. Не помещайте столько аргументов в одну строку кода, как если бы совмещение идет не так (как это происходит сейчас) вы не знаете где. Делайте заявления один за другим и всегда проверяйте возвращаемые значения перед дальнейшим использованием. – greenapps

+0

'Android говорит мне, что в этой строке есть ошибка:'. Нет, не Android. Но Android Studio. Это будет только Android, если у вас есть приложение, и оно работает на устройстве Android. У вас пока нет приложения, поскольку ваш код не компилируется. – greenapps

ответ

1

Вы пытаетесь кормить TextView с объектом File. В зависимости от того, что вам нужно сделать, вы можете попробовать распечатать имена файлов следующим образом:

wordView.setText(max.get(index).getName()); 
+0

Благодарим вас за то, что вы так быстро, это не дает мне больше ошибок в коде, но как только я нажимаю кнопку в приложении, которая должна показывать мне массив, приложение падает, и это сообщение появляется «к сожалению, ваше приложение остановилось», может быть, некоторые проблемы с папкой? –

+0

Какое исключение вы получаете? Проверьте логарифм. –

+0

"java.lang.RuntimeException: Не удается запустить активность ComponentInfo {com.example.android.maxhelperv0.MaxActivity}: java.lang.NullPointerException: storage == null" означает ли это папка пуста? (папка имеет 303 элемента на самом деле) –

Смежные вопросы