У меня есть файл с именем «musi c .txt» в каталоге res / raw. Он содержит список песен и авторов, разделенных «;», например:
Богемская рапсодия; Queen
Piano man; Billy Joel
Born to run; Bruce Springsteen
И я хочу использовать этот список для заполнения ListView из 2 столбцов. Когда я пытаюсь запустить текущий код, появляется сообщение об ошибке: «ArrayAdapter требует, чтобы идентификатор ресурса был TextView». До сих пор я пытался заставить его работать только с первым столбцом, поэтому мне потребуется помощь, чтобы сделать это и с двумя столбцами, потому что я понятия не имею, как это сделать.
Я дал кстати разрешение читать манифест. Вот мой код:
public class Main2Activity extends AppCompatActivity {
ListView list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
list = findViewById(R.id.musicList);
loadData();
}
public void loadData(){
List<String> musicArray = new ArrayList<String>();
String line;
InputStream is = this.getResources().openRawResource(R.raw.music);
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
try {
if (is != null) {
while ((line = reader.readLine()) != null) {
musicArray.add(line.split(";")[0]);
}
}
is.close();
} catch (IOException e) {
e.printStackTrace();
}
String data[] = musicArray.toArray(new String[musicArray.size()]);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.activity_list_item, data);
list.setAdapter(adapter);
}
}
ListView:
<ListView
android:id="@+id/musicList"
android:layout_width="409dp"
android:layout_height="729dp"
android:layout_marginStart="1dp"
android:layout_marginLeft="1dp"
android:layout_marginTop="1dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
Спасибо!