从自定义适配器更改按钮单击视图

时间:2014-09-22 17:10:42

标签: java android

我创建了一个包含listView的布局,该视图在片段中的onCreateView函数中填充了多个类似元素,该视图填充在CustomAdapter extends BaseAdapter中。在listView的每个元素中,我有一个按钮,我想要实现一个onClickListener。单击按钮后,我想切换到另一个视图,类似于在GooglePlus移动应用上查看评论。 我试过在CustomAdapter中这样做:

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>

在片段中我夸大了上面的布局:

@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;
    }

0 个答案:

没有答案