0

在我的项目中,我有一个不同行的 SQLite 数据库。现在我有一个ListView显示这个数据库的某些项目。这些列表项中仅显示行名称城市(代码名为taskNametaskDate )。现在,当您单击它们时,我想显示这些项目的“详细信息”页面。因此,详细信息页面应包含/显示单击项目的所有行,而不仅仅是“名称”和“城市”。到目前为止,我已经这样做了,但只有名称和城市显示在详细活动中,通过.getText(). 我得到的这两行intent.putExtra(),但我不知道如何显示其他行,因为我无法访问它们,.getText()因为它们没有显示在ListView.

这是我的代码ListAdapter(如果您需要更多代码,请告诉我):

public class ServiceAdapter extends ArrayAdapter<ServiceItem> {

    private List<ServiceItem> taskList;
    private Context context;

    public ServiceAdapter(Context context, List<ServiceItem> listItems) {
        super(context, R.id.listitem_taskitem, listItems);

        this.context = context;
        this.taskList = listItems;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;

        if (v == null) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = inflater.inflate(R.layout.service_task_list, null);
        }

        ServiceItem task = taskList.get(position);

        if (task != null) {
            TextView taskName = (TextView) v.findViewById(R.id.task_name);
            TextView taskDate = (TextView) v.findViewById(R.id.task_date);

            taskName.setText(task.getCity());
            taskDate.setText(task.getName());
        }

        return v;
    }
}

这是到目前为止的详细活动:

public class ServiceDetails extends Activity  {

    private TextView city;
    private TextView name2;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setupUI();

        Bundle extras = getIntent().getExtras();
        String name = extras.getString("name").toString();
        String description = extras.getString("description").toString();

        city.setText(name);
        name2.setText(description);
    }

    private void setupUI() {
        setContentView(R.layout.activity_service_details);

        city = (TextView) findViewById(R.id.detailName);
        name2 = (TextView) findViewById(R.id.detailWww);
    }
}
4

1 回答 1

0

我看到您不知道自己在做什么:P 您有一个 ServiceItem 列表提供给您的适配器,您可以查看它。

当这些项目包含从数据库中获取的所有数据时,您可以将序列化对象或其所有数据传递给ServiceDetails活动。

当这些项目仅包含有关名称和城市的信息时,您有 2 个选项:

  • 填写姓名和城市时填写此数据(当它不太大时)
  • 在 ServiceDetails 活动中,通过名称/ID 或您可以获取的任何内容从数据库中获取对象。
于 2013-11-06T16:17:40.223 回答