2016-07-04 7 views
0

私が働いているプロジェクトでは、「課題」(子)の「プロジェクト」(親)がたくさん集まります。リストに表示する必要があるので、私はRecyclerViewを使ってそれを行いました。これを達成するために、BigNerdRanchライブラリ(https://github.com/bignerdranch/expandable-recycler-view)を使用しました。onClick in Expandable RecyclerView(bignerdranchライブラリを使用)

問題が発生し、問題のすべての情報を取得して別のアクティビティに送信する必要があります。

ライブラリには子のクリックを処理するメソッドがありません。そのため、私は回避策を実装しようとしました(私はOKだと思います..)が、ここでブロックされます。私はクリックされた子どもが必要な情報を使って活動を開始する方法を知らない。

public class ProjectAdapter extends ExpandableRecyclerAdapter<ProjectViewHolder, IssueViewHolder> { 

    private LayoutInflater mInflator; 
    private Context appContext ; 

    public ProjectAdapter(Context context, @NonNull List<? extends ParentListItem> parentItemList) { 
     super(parentItemList); 
     this.mInflator = LayoutInflater.from(context); 
     this.appContext = context; 
    } 

    @Override 
    public ProjectViewHolder onCreateParentViewHolder(ViewGroup parentViewGroup) { 
     View projectView = mInflator.inflate(R.layout.jira_project, parentViewGroup, false); 
     return new ProjectViewHolder(projectView); 
    } 

    @Override 
    public IssueViewHolder onCreateChildViewHolder(ViewGroup childViewGroup) { 
     View issueView = mInflator.inflate(R.layout.jira_issue, childViewGroup, false); 
     return new IssueViewHolder(issueView,this.appContext); 
    } 

    @Override 
    public void onBindParentViewHolder(ProjectViewHolder projectViewHolder, int position, ParentListItem parentListItem) { 
     Project project = (Project) parentListItem; 
     projectViewHolder.bind(project); 
    } 

    @Override 
    public void onBindChildViewHolder(IssueViewHolder issueViewHolder, int position, Object childListItem) { 
     Issue issue = (Issue) childListItem; 
     issueViewHolder.bind(issue); 
    } 
} 

IssueViewHolder(子供):

public class IssueViewHolder extends ChildViewHolder{ 

    private TextView mIssueTextView; // contendra de momento el "summary" del issue 
    private Context appContext; 

    public IssueViewHolder(View itemView, final Context appContext) { 
     super(itemView); 
     this.appContext = appContext; 
     this.mIssueTextView = (TextView) itemView.findViewById(R.id.jir_issue_name); 
     this.mIssueTextView.setOnClickListener(new View.OnClickListener(){ 

      @Override 
      public void onClick(View v) { 
       Log.d("JIRA", "CLICk CHILD"); 
       Toast.makeText(appContext, "CHILD #"+getAdapterPosition() +"\n CHILD##"+getPosition(), Toast.LENGTH_LONG).show(); 
      } 
     }); 
    } 

    public void bind(Issue issue){ 
     mIssueTextView.setText(issue.getKey()); 
    } 
} 

私が言ったように、私は子供の情報を取得する方法についてstuckedだ。ここ

はProjectAdapterです。

どうすれば解決できますか?

答えて

0
@Override 
    public void onBindChildViewHolder(IssueViewHolder issueViewHolder, int position, Object childListItem) { 
     Issue issue = (Issue) childListItem; 
     issueViewHolder.bind(issue); 

     issueViewHolder.itemView.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         //your code 
        } 
       }); 
    }