Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在片段内使用上下文操作模式进行recyclerview?_Java_Android_Fragment_Android Recyclerview - Fatal编程技术网

Java 如何在片段内使用上下文操作模式进行recyclerview?

Java 如何在片段内使用上下文操作模式进行recyclerview?,java,android,fragment,android-recyclerview,Java,Android,Fragment,Android Recyclerview,嘿,我的android应用程序中的上下文操作模式有问题。我有一个TaskActivity(AppCompatActivity)和三个选项卡。所有选项卡都是片段。在我的第一个选项卡TaskOwnListTabFragment(Fragment)中,我有以下布局: <android.support.design.widget.CoordinatorLayout android:id="@+id/main_content" xmlns:android="http://schema

嘿,我的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>
这是我的适配器:

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);
        }
    }
}
公共类TaskOwnListAdapter扩展了RecyclerView.Adapter
{
私有静态最终字符串TAG=“familyplan.debug”;
私有列表TaskList=null;
公共任务所有者列表适配器(列表\u任务列表)
{
this.TaskList=\u TaskList;
}
@凌驾
public TaskOwnListViewHolder onCreateViewHolder(视图组父级,int-viewType)
{
视图=LayoutFlater.from(parent.getContext()).flate(R.layout.item_任务,parent,false);
返回新的TaskOwnListViewHolder(视图);
}
@凌驾
BindViewHolder上的公共无效(TaskOwnListViewHolder,int位置)
{
Task Task=this.TaskList.get(position);//Ausgewählte Aufgabe wird zurückgegeben
最终TextView textViewTaskName=holder.textViewTaskName;
最终TextView textViewTaskDescription=holder.textViewTaskDescription;
textViewTaskName.setText(task.getTaskName());
textViewTaskDescription.setText(task.getTaskDescription());
holder.itemView.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v)
{
Log.d(标记“:TaskOwnListAdapter.onClick()->值为=“+textViewTaskName.getText().toString()”的项);
}
});
holder.itemView.setOnLongClickListener(新视图.OnLongClickListener(){
@凌驾
仅长按公共布尔值(视图v)
{
Log.d(标记“:TaskOwnListAdapter.onLongClick()”;
返回true;
}
});
}
@凌驾
public int getItemCount()
{
返回此.TaskList.size();
}
公共类TaskOwnListViewHolder扩展了RecyclerView.ViewHolder
{
公共文本视图文本视图任务名称;
公共文本视图文本视图任务描述;
公共任务所有者列表视图持有者(视图项视图)
{
超级(项目视图);
textViewTaskName=(TextView)itemView.findViewById(R.id.item\u task\u name);
textViewTaskDescription=(TextView)itemView.findViewById(R.id.item\u task\u description);
}
}
}

我不知道如何在我的案例中使用片段中的CAB:(如果每个人都有想法,请帮助我。

让活动处理它。我使用一个包含三个片段的表格布局。我的问题是如何在片段中而不是在活动中使用上下文操作模式;)我明白了。我的建议站得住脚,但这不是我问题的答案,只是问题的另一种选择。我将不得不在我的应用程序中进行大量调整,并改变一些结构。这不是解决办法。您当然可以使用片段。片段是没有自己工具栏的局部视图。管理活动确实如此。因此,活动负责管理工具栏及其状态。您可以从片段与活动通信,让它知道您希望工具栏处于CAB模式,但不应该(尝试)直接从片段内更新工具栏
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);
        }
    }
}