У меня есть файл с именем «musi c .txt» в каталоге res / raw. Он содержит список песен и авторов, разделенных «;», например:
Богемская рапсодия; Queen
Piano man; Billy Joel
Born to run; Bruce Springsteen
Я хочу использовать этот файл для заполнения многоколоночного ListView. В настоящее время он работает с первым столбцом, поэтому он показывает только название песни, и я не знаю, как реализовать второй столбец. Я попытался заменить макет activity_list_item из ArrayAdapater на собственный макет, чтобы я мог разместить два элемента в одной строке внутри TextViews, но, похоже, это не работает (он не может найти созданный мной макет).
Вот код:
publi c 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, android.R.id.text1, data);
list.setAdapter(adapter);
}
}
My custom LinearLayout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Main3Activity"
android:weightSum="100">
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_weight="50"
android:text="TextView"/>
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_weight="50"
android:text="TextView"/>
</LinearLayout>
Спасибо!