System.getProperty("line.separator") 和 "\n" 导致列表视图不填充

Posted

技术标签:

【中文标题】System.getProperty("line.separator") 和 "\\n" 导致列表视图不填充【英文标题】:System.getProperty("line.separator") and " \n " Causes listview not to populateSystem.getProperty("line.separator") 和 "\n" 导致列表视图不填充 【发布时间】:2020-05-16 22:09:13 【问题描述】:

在我的应用中,我有一个列表视图,

视图由字符串数组填充

这里是帮助你们的代码和解释

所以字符串是

StaffList= Client + " Rates: " + Rates + " " + Staff + " Budget Hours: " + BudgetHoursPassData + " Member Budget: " + MemberBudgetPassData + "Notes" + NotesPassData;

然后将该字符串添加到数组中

StaffArray.add(StaffList);

然后使用意图将这个数组传递给另一个活动并显示在列表视图中

public  void PassData()
    Intent GoToReport=new Intent(getApplicationContext(), createProject.class);
    MemberBudgetPassData= MemberBudget.getText().toString();
    BudgetHoursPassData = budgetHours.getText().toString();
    NotesPassData= Notes.getText().toString();

    Toasty.info(popupActivity.this, StaffArray.toString(),Toasty.LENGTH_LONG).show();

    GoToReport.putStringArrayListExtra("Array",StaffArray);
    startActivity(GoToReport);
    Animatoo.animateCard(popupActivity.this);

这是适配器

final ArrayAdapter arrayAdapter =new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, Array);

if (Array == null)
    Toasty.info(createProject.this,"Select a Staff Memebr",Toasty.LENGTH_LONG).show();
else
    StaffListView.setAdapter(arrayAdapter);

现在您可以返回相同的活动并向数组添加第二个项目

public  void DialogBuilder()
    Intent GoToReport=new Intent(getApplicationContext(), popupActivity.class);
    GoToReport.putStringArrayListExtra("Array", Array);
    startActivity(GoToReport);
    Animatoo.animateCard(createProject.this);

所以现在我遇到的问题是上面的代码很好地填充了列表

但只要我在字符串中添加 System.getProperty("line.separator")" \n " 喜欢

StaffList= Client + "\n"+ " Rates: " + Rates + "\n"+ " " + Staff + "\n"+ " Budget Hours: " + BudgetHoursPassData + "\n"+ " Member Budget: " + MemberBudgetPassData + "\n"+ "Notes" + NotesPassData;

列表中的第二个/第三个等项目没有填充,因此只有第一个项目显示在列表中但没有 /nSystem.getProperty("line.separator") 显示所有项目

【问题讨论】:

我认为您应该创建自己的布局和适配器来显示列表。 我尝试了自定义布局导致同样的问题,现在尝试自定义适配器 【参考方案1】:

我通过将 Listview 更改为 A Spinner 解决了这个问题 并调用微调器适配器

  StaffList.setAdapter(new ArrayAdapter<>(createProject.this, android.R.layout.simple_spinner_dropdown_item, Array));

【讨论】:

【参考方案2】:

改用Environment.NewLine

【讨论】:

以上是关于System.getProperty("line.separator") 和 "\n" 导致列表视图不填充的主要内容,如果未能解决你的问题,请参考以下文章

System.getProperty("line.separator"); 之间的区别和“\n”?

System.getProperty("line.separator") 和 "\n" 导致列表视图不填充

System.getProperty("user.dir"); 获得系统属性

由System.getProperty("user.dir")引发的联想

Java System.getProperty("java.runtime.version") 未正确报告

使用System.getProperty("user.dir")获取项目下的文件内容