我的子xml布局中有ImageButton
,如下所示:
<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
中获取值以包含在网络电话中?
答案 0 :(得分:0)
在适配器中,您必须截取按钮上的单击并在侦听器中创建TextView.getText,然后使用值调用方法flipVote。
答案 1 :(得分: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
}