如何从列表视图获取数据

时间:2019-05-20 15:09:06

标签: android

我有一个列表视图,当我单击一个项目时,我想从ArrayList中获取数据,但是我不知道该怎么做:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {
            //what do i do
        }
    });

通过这种方式获取数据:

JSONObject object = new JSONObject(response);
JSONArray jsonArray = object.getJSONArray("search");
for (int i = 0; i < jsonArray.length(); i++){
final JSONObject object1 = jsonArray.getJSONObject(i);
    arrayList.add(new resultsearch(
         object1.getInt("id"),
         object1.getString("destination"),
         object1.getString("infor"),
         object1.getString("city"),
         object1.getInt("rating"),
         object1.getString("img"),
         BigDecimal.valueOf(object1.getDouble("point")).floatValue(),
         object1.getString("comments")
         ));
}
adapter.notifyDataSetChanged();

4 个答案:

答案 0 :(得分:1)

我假设您已经在列表中包含条目。我认为您在适配器内的列表将是arrayList。因此arraylist内的位置就是您单击的项目的位置。

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {
        arraylist.get(position);
    }
});

我不知道您在这里拥有什么样的物体:所以它将像:Object yourObject = arraylist.get(position);

或者如Karim的评论中所述。通过适配器adapter#getItem(position)获取物品!

答案 1 :(得分:0)

您可以使用position的{​​{1}}参数来访问位于任何特定位置的数据。

AdapterView.OnItemClickListener#onItemClick

答案 2 :(得分:0)

从OnitemClickListener方法内部的ArrayList中获取数据的方法是

const { items } = this.state;

使用-Dspring.profiles.active=e1 方法,您可以在数组列表中的索引bookList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String bookName = booksArrayList.get(position); } }); 处获取值。

答案 3 :(得分:0)

我假设您在ResultSearch类中拥有所有的吸气剂

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {
        String information;
        ResultSearch resultSearch = arrayList.get(position);
        information = new StringBuilder()
        .append("id: " + resultSearch.getInt("id") + "\n")
        .append("destination: " + resultSearch.getString("destination") + "\n")
        .append("infor: " + resultSearch.getString("infor") + "\n")
        .append("city: " + resultSearch.getString("city") + "\n")
        .append("rating: " + resultSearch.getInt("rating") + "\n")
        .append("img: " + resultSearch.getString("img") + "\n")
        .append("point: " + resultSearch.getDouble("point") + "\n")
        .append("comments: " + resultSearch.getString("comments") + "\n")
        .toString();
        //display this using an AlertDialog or open an activity containing this information
    }
});