Java 用txt文件填充多列ListView(Android)
我在res/raw目录中有一个名为“music.txt”的文件。它包含以“;”分隔的歌曲和作者列表,如下所示: 波西米亚狂想曲;女王 钢琴手;比利·乔尔 生来就是为了跑步;布鲁斯·斯普林斯汀 我想用这个列表填充一个2列的列表视图。当我尝试使用当前代码运行时,会显示一个错误,上面写着“ArrayAdapter要求资源ID为TextView”。到目前为止,我只是试图让它只与第一列工作,所以帮助将是可取的,以做它与2列以及,因为我不知道如何做 顺便说一句,我同意阅读舱单。这是我的密码:Java 用txt文件填充多列ListView(Android),java,android,Java,Android,我在res/raw目录中有一个名为“music.txt”的文件。它包含以“;”分隔的歌曲和作者列表,如下所示: 波西米亚狂想曲;女王 钢琴手;比利·乔尔 生来就是为了跑步;布鲁斯·斯普林斯汀 我想用这个列表填充一个2列的列表视图。当我尝试使用当前代码运行时,会显示一个错误,上面写着“ArrayAdapter要求资源ID为TextView”。到目前为止,我只是试图让它只与第一列工作,所以帮助将是可取的,以做它与2列以及,因为我不知道如何做 顺便说一句,我同意阅读舱单。这是我的密码: public
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);
}
}
公共类Main2活动扩展了AppCompative活动{
列表视图列表;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
列表=findViewById(R.id.musicList);
loadData();
}
公共void loadData(){
List musicArray=new ArrayList();
弦线;
InputStream is=this.getResources().openRawResource(R.raw.music);
BufferedReader reader=新的BufferedReader(新的InputStreamReader(is));
试一试{
如果(is!=null){
而((line=reader.readLine())!=null){
musicArray.add(line.split(“;”)[0]);
}
}
is.close();
}捕获(IOE异常){
e、 printStackTrace();
}
字符串数据[]=musicArray.toArray(新字符串[musicArray.size()]);
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.activity\u list\u项,数据);
list.setAdapter(适配器);
}
}
列表视图:
<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" />
谢谢 您可以尝试以下方法:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.activity_list_item, android.R.id.text1, data);
ArrayAdapter adapter=新的ArrayAdapter(这是android.R.layout.activity\u list\u项,android.R.id.text1,数据);
ArrayAdapter要求资源ID为文本视图您可以尝试以下方法:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.activity_list_item, android.R.id.text1, data);
ArrayAdapter adapter=新的ArrayAdapter(这是android.R.layout.activity\u list\u项,android.R.id.text1,数据);
ArrayAdapter要求资源ID为文本视图