Java 从CustomAdapter单击按钮时更改视图
我已经创建了一个包含listView的布局,该视图在onCreateView函数中由一个片段中的多个类似元素填充,该视图在CustomAdapter extends BaseAdapter中填充。在listView的每个元素中,我都有一个按钮,我想为其实现onClickListener。当点击按钮时,我想切换到另一个视图,类似于在GooglePlus移动应用程序上查看评论。 我在CustomAdapter中尝试过这样做:Java 从CustomAdapter单击按钮时更改视图,java,android,Java,Android,我已经创建了一个包含listView的布局,该视图在onCreateView函数中由一个片段中的多个类似元素填充,该视图在CustomAdapter extends BaseAdapter中填充。在listView的每个元素中,我都有一个按钮,我想为其实现onClickListener。当点击按钮时,我想切换到另一个视图,类似于在GooglePlus移动应用程序上查看评论。 我在CustomAdapter中尝试过这样做: public void setOnClickComment(View vi
public void setOnClickComment(View view) {
final ImageButton btn = (ImageButton)view.findViewById(R.id.addComment);
if (btn != null) {
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Log.d("ONCLICK", "I just clicked this shit" + btn.getTag());
manager.beginTransaction()
.replace(R.id.feedLayout, new CommentFragment()).commit();
}
});
} else {
Log.d("CLICK", "ESTE NULL");
}
}
管理器是一个FragmentManager,它从片段传递到CustomAdapter构造函数。我可以在LogCat中看到日志,但仅此而已,没有其他情况发生,按钮的标记是元素的位置
这是布局图:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:id="@+id/feedLayout"
>
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:divider="#b5b5b5"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector" />
</LinearLayout>
R.id.feedLayout
在当前布局上可见吗?尝试将片段添加到事务的backbackback中,并在提交后尝试执行manager.executePendingTransactions()代码>我这样做了:FragmentTransaction=manager.beginTransaction().replace(R.id.feedLayout,new CommentFragment());trans.addToBackStack(空);trans.commit();但它仍然不起作用
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
LinearLayout linear = (LinearLayout) inflater.inflate(R.layout.swipe_screen_left, container, false);
view = (ListView) linear.getChildAt(0);
adapter = new CustomAdapter(getActivity(), data, getFragmentManager());
view.setAdapter(adapter);
return linear;
}