Java Android:ListView不显示项目

Java Android:ListView不显示项目,java,android,android-layout,listview,Java,Android,Android Layout,Listview,我有来自数据库的简单列表,只想在简单列表视图中显示 public class FindAllJobs extends ListActivity { private JobOperations operations; ArrayList<JobModel> jobs; @Override protected void onCreate(Bundle savedInstanceState) {

我有来自数据库的简单列表,只想在简单列表视图中显示

    public class FindAllJobs extends ListActivity {

        private JobOperations operations;
        ArrayList<JobModel> jobs;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_find_all_jobs);
            operations = new JobOperations(this);
            operations.open();
            jobs = operations.getJobListBySearchKey("python");
            operations.close();
            //ListView listView = (ListView)findViewById(R.id.list);
            //JobAdapter adapter = new JobAdapter(this,jobs);

            ArrayAdapter<JobModel> adapter = new ArrayAdapter<>(this,
                    android.R.layout.simple_list_item_1, jobs);
            //listView.setAdapter(adapter);
            setListAdapter(adapter);

        }

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_find_all_jobs"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="jobs.find.com.finddevjobs.models.FindAllJobs">


    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/textView1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"/>


</LinearLayout>

错误在于,ListView获取了一个对象列表。但它不知道应该如何命名它们。 此问题有两种解决方案:

简单的一个
在JobModel中添加重写的toString()方法,并在其中定义ListView中的标签应该是什么样的,然后返回它

像这样的

 @Override
 public String toString(){
   return "Name: " + this.getName + "  Date: " + this.getDate();
 }
可以修改的复杂版本

创建一个自定义ListViewAdapter,从JobModel中获取要显示的信息。internet上有许多创建这样一个适配器的例子。

您必须拥有自己的适配器,如果您想使用默认值,必须将String对象传递给
ArrayAdapter
。这些内容是您在
listview
中看到的,因为调用了
JobModel.toString()

Android将无法在
ArrayAdapter
中自动显示您的
JobModel
,因为它只是试图在您的对象上调用
.toString()
,然后显示它。您可以发布您为自定义适配器尝试的代码吗?这将是一条路要走。如果您只想从每个
JobModel
中显示一个字符串,您还可以构建一个新的
字符串列表
,并在
ArrayAdapter
中显示它,我认为它是重复的,您可以按照此链接进行操作,好的,现在了解问题:)我希望自动从对象转换为列表:)是的。你可以使用这篇文章@ArmenArzumanyanok,我会试试的,谢谢,我希望能自动将我的jobmodel转换为列表视图:))
 @Override
 public String toString(){
   return "Name: " + this.getName + "  Date: " + this.getDate();
 }