【发布时间】:2017-08-31 03:07:30
【问题描述】:
大家好,我是 android 的菜鸟,所以请多多包涵!
我使用下面的示例创建了一个带有四个选项卡式片段的 recyclerview,每个片段显示我正在为其创建应用程序的本地团队的列表(卡片视图)。
我想在每个片段中添加一个 onclicklistener 并尝试使用 if position 方法,就像我几年前创建类似应用程序时所做的那样,但 get position 方法已被贬值。
我知道我可以在适配器中放置 onviewbind 方法,但我被告知这不是最好的方法,(我无法让它工作)并且点击侦听器应该放置在片段中,因为这样你可以重用我想要做的适配器,因为当有人在其中一个片段中进行选择时,我想在另一个片段中创建另一个列表,然后将包含一个可扩展列表。
我的适配器
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder> {
private String[] mDataset;
public static class MyViewHolder extends RecyclerView.ViewHolder{
public CardView mCardView;
public TextView mTextView;
public MyViewHolder(View v){
super(v);
mCardView = (CardView) v.findViewById(R.id.card_view);
mTextView = (TextView) v.findViewById(R.id.tv_text);
}
}
public MyAdapter(String[] myDataset){
mDataset = myDataset;
}
@Override
public MyAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType){
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_item, parent, false);
MyViewHolder vh = new MyViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position){
holder.mTextView.setText(mDataset[position]);
}
@Override
public int getItemCount() { return mDataset.length; }
我的片段
public class BlankFragment extends Fragment {
public BlankFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_blank, container, false);
RecyclerView rv = (RecyclerView) rootView.findViewById(R.id.rv_recycler_view);
rv.setHasFixedSize(true);
MyAdapter adapter = new MyAdapter(new String[]{"Example One", "Example Two", "Example Three", "Example Four", "Example Five" , "Example Six" , "Example Seven"});
rv.setAdapter(adapter);
LinearLayoutManager llm = new LinearLayoutManager(getActivity());
rv.setLayoutManager(llm);
return rootView;
}
}
我已经尝试了各种方法来使其正常工作,但我一直面临错误或贬值的代码。
任何人都可以将我链接到教程吗?这将帮助我或帮助我使用一些代码来解决这个问题!提前致谢
【问题讨论】:
-
你想做什么?你想有一个监听器,当在列表中单击一个项目时会通知它?
-
我想在单击列表中的项目时开始另一个活动,然后我计划使用另一个适配器或相同的采用者创建另一个具有可扩展列表的列表视图
标签: android android-fragments android-recyclerview android-cardview