我有一个带有 TextViews 的列表,当用户单击按钮时,我在相应的 TextView 上执行 performClick()(以触发 QuickAction),但我得到的视图为空,有谁知道这是为什么,以及如何修复这?
这就是我创建 TextView 的方式
//The holder of a store, which contains a TextView
public List<Store> stores = new ArrayList<Store>();
// Create TextView and QuickAction within loop in method createStores();
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.leftMargin = Math.round(location[0]);
lp.topMargin = Math.round(location[1]);
lp.gravity = Gravity.TOP | Gravity.LEFT;
TextView tv = new TextView(getContext());
tv.setTag(s);
tv.setLayoutParams(lp);
tv.setText(s.name);
final QuickAction quickAction = new QuickAction(getContext(), QuickAction.VERTICAL);
ActionItem nextItem = new ActionItem(s.ID, s.name, null, s.ID);
quickAction.addActionItem(nextItem);
tv.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
quickAction.show(v, null);
}
});
s.textview = tv;
然后,我有一个搜索方法,我从 stores List 中找到一家商店,并希望通过 performClick() 方法模拟点击。调用了 OnClickListener,但是由于 TextView 为空,所以放错了 QuickAction
// Then from another function
s.textview.performClick();
==== 更新 ===== 我解决了我自己的问题,谢谢大家的帮助!