【发布时间】:2017-02-28 21:41:13
【问题描述】:
我有来自数据库的简单列表,想在简单列表视图中显示。
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>
但是列表总是显示com.packages.JobModel@dfdfdfdfdfdfdfd,为什么?
哪里有错?甚至创建了自定义适配器,但结果是一样的。
我是 Android 新手,只是来自 db:) 的第一个 ListView。 Db 部分工作正常。
这是adapter,其实还没完,不明白是返回view还是list? :(
public class JobAdapter extends ArrayAdapter<JobModel> {
public JobAdapter(Context context, ArrayList<JobModel> jobs) {
super(context, 0, jobs);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
JobModel job = getItem(position);
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.activity_find_all_jobs, parent, false);
}
return convertView;
}
}
【问题讨论】:
-
Android 将无法在
ArrayAdapter中自动显示您的JobModel,因为它试图仅在您的对象上调用.toString()并显示它。您可以发布您为自定义适配器尝试过的代码吗?这将是要走的路。如果您只想显示来自每个JobModel的字符串,您还可以构建一个新的Strings列表并将其显示在ArrayAdapter -
我认为是重复的你可以点击这个链接stackoverflow.com/questions/15297840/…
标签: java android android-layout listview