相关疑难解决方法(0)

如何在Fragment和适配器之间创建接口?

我有片段ListView,比方说MyListFragment和自定义CursorAdapter.我onClickListener在此适配器中设置列表行中的按钮.

public class MyListAdapter extends CursorAdapter {

    public interface AdapterInterface {
        public void buttonPressed();
    }

    ...

    @Override
    public void bindView(final View view, final Context context, final Cursor cursor) {
        ViewHolder holder = (ViewHolder) view.getTag();

        ...

        holder.button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // some action
                // need to notify MyListFragment
            }
        });
    }
}

public MyListFragment extends Fragment implements AdapterInterface {

    @Override
    public void buttonPressed() {
        // some action
    } …
Run Code Online (Sandbox Code Playgroud)

java android interface

53
推荐指数
3
解决办法
7万
查看次数

使用RecyclerView的自定义警报对话框

我正在使用RecyclerView列出一些文本,现在我想这样做,以便当用户点击文本时弹出自定义警报对话框.

到目前为止我已尝试过这个但是得到一个NullPointerException; 这可能有什么问题?

public class CBAdapter extends RecyclerView.Adapter<CBAdapter.ViewHolder> {

List<AdapterData> mItems;

public CBAdapter() {
    super();
    mItems = new ArrayList<>();
    AdapterData data = new AdapterData();
    data.setTextOne("Many Bows");
    mItems.add(data);

    data = new AdapterData();
    data.setTextOne("Pardon");
    mItems.add(data);

    data = new AdapterData();
    data.setTextOne("Fall To Knees & Beg");
    mItems.add(data);

    data = new AdapterData();
    data.setTextOne("Backflips");
    mItems.add(data);



}

@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View v = LayoutInflater.from(viewGroup.getContext())
            .inflate(R.layout.test3, viewGroup, false);
    return new ViewHolder(v);
}

@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {
    AdapterData …
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog android-recyclerview

9
推荐指数
1
解决办法
2万
查看次数

如何从适配器调用ListFragment中定义的方法?

我有ListFragment一个定制适配器.

从适配器我onClick从行中定义的按钮获取事件.在onClick方法中我得到一些id,我想传递ListFragment给做一些东西.

如何ListFragment在适配器中调用showTask方法?

listfragment

public class TaskListFragment extends ListFragment{

    /* ... */

    @Override
    public void onCreate(Bundle savedInstanceState) {       
        super.onCreate(savedInstanceState);
        mAdapter = new TaskListAdapter(getActivity(), data);        
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) 
    {
        super.onActivityCreated(savedInstanceState);
        setListAdapter(mAdapter);
    }   

    public void showTask(long id) {

        FragmentTransaction ft = getFragmentManager().beginTransaction();

        TaskFragment taskFragment = new TaskFragment();

        Bundle args = new Bundle();
        args.putLong("id", id);
        taskFragment.setArguments(args);

        ft.replace(R.id.fragment_container, taskFragment);
        ft.commit();         
    }
}
Run Code Online (Sandbox Code Playgroud)

适配器

public class TaskListAdapter extends ArrayAdapter<Task>{

    /* ... */ …
Run Code Online (Sandbox Code Playgroud)

android adapter

7
推荐指数
2
解决办法
8440
查看次数