为了账号安全,请及时绑定邮箱和手机立即绑定

如何在自定义对象的android中使用ArrayAdapter

如何在自定义对象的android中使用ArrayAdapter

UYOU 2020-02-01 17:11:06
如何在Listview中使用自定义对象的属性。如果我实现一个带有字符串列表的ArrayAdapter,它在Listview中会很好地显示,但是当我使用一个自定义对象的列表时,它只是输出内存地址。我到目前为止的代码:ArrayList<CustomObject> allObjects = new ArrayList<>();allObjects.add("title", "http://url.com"));  ArrayAdapter<NewsObject> adapter = new ArrayAdapter<NewsObject>(this,                android.R.layout.simple_list_item_1, android.R.id.text1, allNews);        // Assign adapter to ListView        listView.setAdapter(adapter);        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                Uri uri = Uri.parse( "http://www.google.com" );                startActivity(new Intent(Intent.ACTION_VIEW, uri));            }        });这里有一个类似的问题,但这不是我所需要的,因为我只需要在列表视图中显示标题,并且当他们单击时提取URL即可。
查看完整描述

3 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

ArrayAdapter显示toString()方法返回的值,因此您将需要在自定义Object类中重写此方法以返回所需的String。您还需要至少具有该URL的getter方法,以便可以在click事件中检索该方法。


public class NewsObject {

    private String title;

    private String url;


    public NewsObject(String title, String url) {

        this.title = title;

        this.url = url;

    }


    public String getUrl() {

        return url;

    }


    @Override

    public String toString() {

        return title;

    }

    ...

}

在该onItemClick()方法中,position将是自定义对象的ArrayList中与单击的列表项相对应的索引。检索URL,对其进行解析,然后调用startActivity()。


listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override

        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            NewsObject item = allNews.get(position);

            String url = item.getUrl();

            Uri uri = Uri.parse(url);

            startActivity(new Intent(Intent.ACTION_VIEW, uri));

        }

    });

请注意,我假设您的自定义类是NewsObject,因为这是您的Adapter示例所使用的。


查看完整回答
反对 回复 2020-02-01
  • 3 回答
  • 0 关注
  • 762 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信