gpt4 book ai didi

java - 使用特定对象上的 onItemClick 获取 listView 中项目的位置

转载 作者:行者123 更新时间:2023-12-01 11:28:19 24 4
gpt4 key购买 nike

我有一个 ListView,其中包含从外部数据库获取的多个条目。每个条目都有一个图像按钮和其他对象。我想知道列表条目的位置,即用户单击图像按钮的位置。

是否有可能查看女巫对象,特别是用户点击的对象

this.getALlEntrysListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
try {
JSONObject entryClicked = jsonArray.getJSONObject(position);

?此代码位于我的 MainActivity 类中。

我在 Adapter 类中设置了每个条目的特定内容。

仅当用户单击图像按钮时获取 jsonArray 位置的另一种可能性是什么?

这是我的适配器类:

public class GetAllEntrysListViewAdapter extends BaseAdapter {

private JSONArray dataArray;
private Activity activity;
private static LayoutInflater inflater = null;

public GetAllEntrysListViewAdapter(JSONArray jsonArray, Activity a) {
this.dataArray = jsonArray;
this.activity = a;

inflater = (LayoutInflater)this.activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

@Override
public int getCount() {
return this.dataArray.length();
}

@Override
public Object getItem(int position) {
return position;
}

@Override
public long getItemId(int position) {
return position;
}

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

//set up convert view if it is not null
ListCell cell;
if (convertView == null) {
convertView = inflater.inflate(R.layout.get_all_entry_list_view_cell, null);

cell = new ListCell();
cell.likes = (TextView) convertView.findViewById(R.id.listViewLikes);
cell.note = (TextView) convertView.findViewById(R.id.listViewNote);
cell.img = (ImageView) convertView.findViewById(R.id.listViewImg);
cell.likeButton = (ImageButton) convertView.findViewById(R.id.likeButton);

convertView.setTag(cell);

}
else {
cell = (ListCell)convertView.getTag();
}

//change data of cell
try {
JSONObject jsonObject = this.dataArray.getJSONObject(position);
cell.likes.setText("Likes: "+ jsonObject.getString("likes"));
cell.note.setText(jsonObject.getString("note"));

String img = jsonObject.getString("image");
if (img.equals("img")) {
cell.img.setImageResource(R.drawable.logo);
}
}
catch (JSONException e) {
e.printStackTrace();
}
return convertView;

}

private class ListCell {
private TextView likes;
private TextView note;
private ImageView img;
public ImageButton likeButton;

}

最佳答案

imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RelativeLayout parent = (RelativeLayout)v.getParent();
int position = listView.getPositionForView(parent);
// position in listview
}
});

关于java - 使用特定对象上的 onItemClick 获取 listView 中项目的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30624298/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com