Java 如何在片段内使用上下文操作模式进行recyclerview?
嘿,我的android应用程序中的上下文操作模式有问题。我有一个TaskActivity(AppCompatActivity)和三个选项卡。所有选项卡都是片段。在我的第一个选项卡TaskOwnListTabFragment(Fragment)中,我有以下布局: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.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);
}
}
}