Java 如何在片段类中创建意图

Java 如何在片段类中创建意图,java,android,android-fragments,android-intent,Java,Android,Android Fragments,Android Intent,我已经使用循环视图创建了一个选项卡式活动,并在每个片段中创建了一个列表视图,现在我有了使片段中的卡片可点击并创建一个开始新活动的意图所需的列表。我已经尝试了单击方法和onListItemClick,尽管我知道这不起作用 基本上,我需要为每个片段再创建一层列表,这将导致一个操作列表(网络视图、地图和信息) 下面是示例代码 ublic class LOneFragment extends Fragment { public LOneFragment() { // Required empt

我已经使用循环视图创建了一个选项卡式活动,并在每个片段中创建了一个列表视图,现在我有了使片段中的卡片可点击并创建一个开始新活动的意图所需的列表。我已经尝试了单击方法和onListItemClick,尽管我知道这不起作用

基本上,我需要为每个片段再创建一层列表,这将导致一个操作列表(网络视图、地图和信息)

下面是示例代码

ublic class LOneFragment extends Fragment {

public LOneFragment() {
    // 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[]{"League One News", "AFC Wimbledon", "Blackburn Rovers", "Blackpool", "Bradford City", "Bristol Rovers", "Bury", "Charlton Athletic", "Doncaster Rovers", "Fleetwood Town",
            "Gillingham", "Milton Keynes Dons", "Northampton Town", "Oldham Athletic", "Oxford United", "Peterborough United", "Plymouth Argyle", "Portsmouth", "Rochdale", "Rotherham United",
            "Scunthorpe United", "Shrewsbury Town", "Southend United", "Walsall", "Wigan Athletic"});
    rv.setAdapter(adapter);

    LinearLayoutManager llm = new LinearLayoutManager(getActivity());
    rv.setLayoutManager(llm);

    return rootView;
}

public void onListItemClick(ListView l, View v, int position, long id) {
    if (position == 3) {
        Intent intent = new Intent(getContext(), Bradford.class);
        startActivity(intent);
    }
我的适配器类

公共类MyAdapter扩展了RecyclerView.Adapter{

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; }

}这对我来说非常合适

1) 在viewholder类中创建方法,该方法将占据位置,从位置获取数组项并使用您喜欢的方式

2) 在onBindViewHolder方法中使用itemView实例访问它,itemView实例是给定位置的整行

public class MyAdapter extends RecyclerView.Adapter {

     private String[] mDataset;


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]);
    holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                holder.bindCliks(groupItem);
            }
        });

@Override 
public int getItemCount() { return mDataset.length; }
}



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 void bindCliks(int position) {
        Intent intent = new Intent(context, 
            OtherActivity.class);
       //use number here to get your string item and use it to other activity.
        context.startActivity(intent);
    }
}

“onListItemClick”方法的用法在哪里?在这里,您可以找到如何使用RecyclerView定义“onClickListener”。如果要将单击侦听器放置在recycler视图项上,则应在MyAdapter类中执行此操作。。如果是这种情况,那么发布M¥适配器类。@AalapPatel我已经添加了适配器类