@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View listItemView = convertView;
if (listItemView == null) {
listItemView = LayoutInflater.from(getContext()).inflate(
R.layout.list_item, parent, false);
likeButton= (Button)
listItemView.findViewById(R.id.like_button);
//likeButton.setClickable(currentProduct.getmLikeButton());
dislikeButton = (Button)
listItemView.findViewById(R.id.dislike_button);
favoritesButton = (Button)
listItemView.findViewById(R.id.favorite_button);
}
TextView productNameView = (TextView)
listItemView.findViewById(R.id.product_name);
ImageView productImageView = (ImageView)
listItemView.findViewById(R.id.product_image);
currentProduct = getItem(position);
likeButton.setTag(position);
dislikeButton.setTag(position);
favoritesButton.setTag(position);
likeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int position=(Integer)v.getTag();
currentProduct = getItem(position);
productId = currentProduct.getProductId();
likeButton = (Button) v.findViewById(R.id.like_button);
Uri baseUri = Uri.parse(UNBXD_UACTION);
Uri.Builder uriBuilder = baseUri.buildUpon();
uriBuilder.appendQueryParameter("uaction", "like");
uriBuilder.appendQueryParameter("user", "8222");
uriBuilder.appendQueryParameter(PRODUCT_ID,productId);
uriBuilder.appendQueryParameter(MATERIALL, "true");
//uriBuilder.appendQueryParameter(USER_ID, "5");
uriBuilder.appendQueryParameter(UNDO, "false");
Intent intent = new
Intent(Intent.ACTION_WEB_SEARCH, uriBuilder.build());
intent.getData();
likeButton.setBackgroundResource(R.drawable.liked);
Log.v("liked url is ", uriBuilder.toString() + " " +
String.valueOf(position));
}
});
我无法弄清楚每三个条目的like按钮是如何以及为什么被按下的,从我实际按下的like按钮开始,但(幸运的是)只有一个,而且也调用了正确的API。
请帮忙。
这是因为您的视图是在listview
中回收的。当convertview!=null
时,这意味着您得到了一个回收的视图,并且需要再次绑定该视图。
要解决此问题,您可能需要在产品类、适配器或其他地方添加一个新属性,并简化单击监听器中的操作:
likeButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
int position = (Integer)v.getTag();
Product currentProduct = getItem(position);
currentProduct.setLiked(true); // or false
notifyDataSetChanged(); // notify so ListView can update
}
// continue...
然后在getview
方法中:
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
// ...
likeButton = (Button) v.findViewById(R.id.like_button);
likeButton.setBackgroundResource(currentProduct.isLiked() ? R.drawable.liked : R.drawable.something);
// continue...
我有一个包含我的数据的listView,但我需要能够按下向上滚动的按钮(如果listView可以向上滚动)和向下滚动的按钮(如果listView可以向下滚动),而不是使用滚动条滚动 listView可以转到的最大Y位置 listView滚动到的当前Y位置 使用这些值,我可以编写其余的代码。
我是一个新手,我正在尝试创建一个应用程序来在我的投资组合中使用。本质上,该程序是一个可以访问不同菜单的菜单(json文件:texas_pick.js,Breakth.js…),该程序旨在以按钮的形式显示菜单选项,按钮的详细信息从各自的json文件中检索。我面临的问题是,单击菜单选项时,会检索最后一个菜单项的数据。我将后端编程为只将商品名称和价格推送到数据库,而前端则检索这些数据并将其显示在表上。检
问题内容: 当我单击一个按钮时,我想运行多种功能。例如,我希望我的按钮看起来像 当我执行此语句时,出现错误,因为我无法两次为参数分配内容。如何使命令执行多个功能。 问题答案: 您可以创建一个用于组合功能的通用功能,看起来可能像这样: 然后,您可以像这样创建按钮:
如您所见,我制作了对话框,displaynotedate用于读取与金额相关的其他数据,并在对话框中读取:
我知道以前可能有人问过这个问题,但我似乎找不到适合我情况的合理答案。 我有一个表单,表单中有多个提交按钮,我需要知道按下了哪个按钮。 表单内部的一个小代码段可能如下所示: fmt:消息部分只是考虑了客户端的语言并将单词放在按钮上。 到目前为止,我在submit按钮上添加了一个动作处理程序,并在表单上添加了一个隐藏的input元素,告诉我哪个按钮被按下了,但是我需要在不依赖javascript的情况
我正在使用Android Studio v3。1.2. 我有一对带有列表视图和按钮的活动。无论ListView中有多少项,按钮都应对齐底部。 在我的主活动中,ListView和按钮在RelativeLayout上完美渲染。我可以添加很多项目到ListView和按钮保持不变。 另一方面,我的JournalAbFragment是一个在表格布局中使用RelativeLayout的片段。该片段由PetDe