我正在使用this Link
单击Toast的列表项内部发生,但我希望点击应该在Textview上翻转列表视图后发生,它应该打开一个片段。请建议我实现它的一些方法。
帮助将在星空之上受到赞赏。
FlipSettings settings = new FlipSettings.Builder().defaultPage(1).build();
friends.setAdapter(new FriendsAdapter(getActivity(), Utils.friends, settings));
friends.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Friend f = (Friend) friends.getAdapter().getItem(position);
Toast.makeText(getActivity(), f.getNickname(), Toast.LENGTH_SHORT).show();
}
});
答案 0 :(得分:0)
请注意从FrameLayout类扩展的FlipViewPager。这里的问题是framelayout不可点击,因为viewgroup强制onintercepttouchevent返回false。因为您无法在FlipViewPager中为任何视图制作click事件。 我在这里提出的解决方案如下: 步骤1:在friends_info.xml中删除一个按钮,并将其命名为detailButton。 第2步:现在打开FlipViewPager类并将OnClickListener声明为全局。 第3步:覆盖setOnClickListener方法,如下所示
@Override
public void setOnClickListener(OnClickListener l) {
super.setOnClickListener(l);
mOnClickListener = l;
}
第4步:这是诀窍!我们正在从onInterceptTouchEvent方法中捕获click事件。转到onInterceptTouchEvent(MotionEvent ev)方法并编写如下逻辑
if(action == MotionEvent.ACTION_DOWN && !flipping) return mOnClickListener != null;
上述语句检查是否发生了click事件并且没有翻转事件并返回true;
在FriendsActivity中声明Button按钮的详细信息;在FriendsAdapter里面的FriendsHolder类里面。 然后转到getPage方法初始化按钮。 内部if(convertView == null)语句初始化为holder.details =(Button)holder.infoPage.findViewById(R.id.detailButton); 并添加点击监听器
holder.details.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "Hurray! You clicked", Toast.LENGTH_LONG).show();
}
});
就是这样!