如何在片段内使用contextlerview的上下文操作模式?

时间:2017-09-13 10:36:04

标签: java android android-recyclerview fragment recycler-adapter

嘿,我的Android应用中的上下文操作模式有问题。我有一个TaskActivity(AppCompatActivity)和三个标签。所有选项卡都是片段。在我的第一个选项卡TaskOwnListTabFragment(Fragment)中,我有这个布局:

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/main_content"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/listview_task_tasklist_ownlist"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    </android.support.v7.widget.RecyclerView>

</android.support.design.widget.CoordinatorLayout>

在我的适配器中,我处理onLOngPressed事件。我的RecyclerView将由适配器填充:

@Override
public View onCreateView(LayoutInflater _inflater, ViewGroup _container, Bundle _savedInstanceState)
{
    Log.d(TAG,":TaskOwnListTabFragment.onCreateView()");

    View view = _inflater.inflate(R.layout.tab_task_ownlist, _container, false);

    this.taskList = Task.createDummyTasksList(10); // Es werden Dummy Daten geladen

    this.recyclerViewOwnTasks = (RecyclerView) view.findViewById(R.id.listview_task_tasklist_ownlist);
    this.recyclerViewOwnTasks.setAdapter(new TaskOwnListAdapter(this.taskList));
    this.recyclerViewOwnTasks.setLayoutManager(new LinearLayoutManager(view.getContext()));


    return view;
}

这是我的适配器:

public class TaskOwnListAdapter extends RecyclerView.Adapter<TaskOwnListAdapter.TaskOwnListViewHolder>
{
    private static final String TAG = "familyplan.debug";

    private List<Task> TaskList = null;

    public TaskOwnListAdapter(List<Task> _taskList)
    {
        this.TaskList = _taskList;
    }

    @Override
    public TaskOwnListViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
    {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_task, parent, false);
        return new TaskOwnListViewHolder(view);
    }

    @Override
    public void onBindViewHolder(TaskOwnListViewHolder holder, int position)
    {
        Task task = this.TaskList.get(position); //Ausgewählte Aufgabe wird zurückgegeben

        final TextView textViewTaskName = holder.textViewTaskName;
        final TextView textViewTaskDescription = holder.textViewTaskDescription;

        textViewTaskName.setText(task.getTaskName());
        textViewTaskDescription.setText(task.getTaskDescription());

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v)
            {
                Log.d(TAG,":TaskOwnListAdapter.onClick() -> item with value = " + textViewTaskName.getText().toString());
            }
        });

        holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v)
            {
                Log.d(TAG,":TaskOwnListAdapter.onLongClick()");
                return true;
            }
        });
    }

    @Override
    public int getItemCount()
    {
        return this.TaskList.size();
    }

    public class TaskOwnListViewHolder extends RecyclerView.ViewHolder
    {
        public TextView textViewTaskName;
        public TextView textViewTaskDescription;

        public TaskOwnListViewHolder(View itemView)
        {
            super(itemView);

            textViewTaskName = (TextView) itemView.findViewById(R.id.item_task_name);
            textViewTaskDescription = (TextView) itemView.findViewById(R.id.item_task_description);
        }
    }
}

我不知道如何在我的片段中使用CAB来处理我的情况:(如果每个人都有想法那么请帮助我。

0 个答案:

没有答案