gpt4 book ai didi

java - 如何使用 CustomArrayAdapter 区分 ListFragment 中的 View ?

转载 作者:行者123 更新时间:2023-12-01 12:38:45 25 4
gpt4 key购买 nike

我想知道是否可以在 onListItemClick 中的 View 之间添加逻辑\区分?我有一个 listFragment,其中包含多个 View ,并且想要执行不同的操作。我尝试在我的 View 上使用 .isPressed() 方法,但没有成功。

执行此操作的正确方法是什么。 -谢谢。

<小时/>

根据标记答案的建议,我在 CustomArrayAdapter 中实现了下面的代码,一切运行良好。我有一个 ListFragment,它为单元格实现 onListItemClick 并在同一单元格内实现可单击的 imagesViews。希望这对下一个人有帮助。

public class ZAdapter extends ArrayAdapter<HashMap<String, String>>{

protected static final String TAG = "myLog";
Context context;
ArrayList<HashMap<String,String>> myListOfMaps;

public ZAdapter(Context context, int textViewResourceId, ArrayList<HashMap<String, String>> myListOfMaps) {
super(context, textViewResourceId, myListOfMaps);
// TODO Auto-generated constructor stub
this.context=context;

this.myListOfMaps = myListOfMaps;

}


public class MyViewHolder
{

ImageView editImage;
TextView tvTitle;
TextView tvSubTitle;
TextView tvRepEmail;
TextView tvRepCell;

public MyViewHolder(View v)
{
editImage = (ImageView) v.findViewById(R.id.row_icon);
tvTitle = (TextView) v.findViewById(R.id.row_title);
tvSubTitle = (TextView) v.findViewById(R.id.row_subTitle);
tvRepEmail = (TextView) v.findViewById(R.id.tvRepEmail);
tvRepCell = (TextView) v.findViewById(R.id.tvRepCell);
}


}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
final int index=position;

View row = convertView;
MyViewHolder holder = null;


if(row==null){
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(R.layout.row, parent, false);
holder = new MyViewHolder(row);


row.setTag(holder);

}else{

holder = (MyViewHolder) row.getTag();



}



holder.editImage.setImageResource(R.drawable.edit_img);holder.editImage.setTag("goEdit");
holder.tvTitle.setText(myListOfMaps.get(position).get("prod"));
holder.tvSubTitle.setText(myListOfMaps.get(position).get("dist"));
holder.tvRepEmail.setText(myListOfMaps.get(position).get("repEmail"));
holder.tvRepCell.setText(myListOfMaps.get(position).get("repPhone"));

holder.editImage.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.d(TAG, "***************** getView() *********called"+index);

}
});


return row;
}

}

-谢谢

最佳答案

不确定您可以在 onListItemClick 函数中处理它。可以处理事件点击的地方之一是 Adapter 类 - getView 函数。在此函数中,您可以找到控件并注册事件处理程序。

请注意,您只能在此 block 中设置事件处理程序

if (convertView == null) {

// Find your controls and register event handlers here
}

关于java - 如何使用 CustomArrayAdapter 区分 ListFragment 中的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25330067/

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