我在StackOverflow上完成了关于此的所有答案和问题,但我似乎无法编辑我的代码来纠正这个问题。
基本上,我有一个按钮,需要在ListView适配器中设置OnClick侦听器。每行都有一个唯一的ID,当我点击按钮时会选择错误的ID,这基本上意味着它选择了错误的位置。
这是我的适配器代码:
public class FeedAdapter extends BaseAdapter {
ArrayList<ActivityObject> actList = new ArrayList<ActivityObject>();
String currActID;
//More code
public View getView(int position, View convertView, ViewGroup parent) {
Holder holder;
final ActivityObject act = actList.get(position);
currActID = act.getId();
if (convertView == null) {
convertView = inflater.inflate(R.layout.feed_single_picture, parent, false);
holder = new Holder();
holder.comment = (ImageButton) convertView.findViewById(R.id.commentbutton);
convertView.setTag(holder);
} else {
holder = (Holder) convertView.getTag();
}
holder.comment.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Log.d("Check",currActID);
//Selects the Wrong ID
Intent myIntent = new Intent(activity, CommentActivity.class);
v.getContext().startActivity(myIntent);
}
});
return convertView;
}
我做错了什么?你能指出错误吗?
答案 0 :(得分:3)
namespace <Your.NameSpace.Here>
{
public class VSController : ApiController
{
// GET api/<controller> : url to use => api/vs
public string Get()
{
return "Hi from web api controller";
}
// GET api/<controller>/5 : url to use => api/vs/5
public string Get(int id)
{
return (id + 1).ToString();
}
}
}
而不是让它全球化。
为什么呢?因为简单的currActID总是等于最后的位置,除非你滚动然后它将再次成为滚动的最后位置的id。