0

我的ImageButton孩子 xml 布局是这样的:

<ImageButton 
    android:id="@+id/favoriteButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/citrus_orange"
    android:paddingLeft="@dimen/feed_item_padding_left_right"
    android:background="@null"
    andorid:onClick="flipVote"/>

我以编程方式使此按钮在我的适配器中不可聚焦:

ImageButton favButton = (ImageButton) convertView.findViewById(R.id.favoriteButton);

favButton.setFocusable(false);

在相同的布局中,我有一个TextView喜欢:

<TextView
     android:id="@+id/store_id"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:visibility="gone" />

点击会调用flipVote(View view)方法:

public void flipVote(View view) {
        // make a network call with the value from store_id
     }

如何从TextView与单击的按钮关联的值中获取值以包含在网络调用中?

4

2 回答 2

0

在适配器中,您必须拦截单击按钮并在侦听器中制作 TextView.getText,然后使用该值调用您的方法 flipVote。

于 2014-07-23T22:17:14.910 回答
0

我发现实现这一目标的正确方法是使用标签。我是这样做的:

适配器

// store is data model
favButton.setTag(store.getId());

活动

// use it in the flipVote(View view) method
public void flipVote(View view) {
        JSONObject storeVoteData = new JSONObject();

try {
    storeVoteData.put("store_id", view.getTag());
    } catch (JSONException e) {
             e.printStackTrace();
         }
     }

  // make Volley call with JSONObject
}
于 2014-07-24T19:42:30.090 回答