Skip to content

Commit

Permalink
add item chlid click
Browse files Browse the repository at this point in the history
  • Loading branch information
ChadCym committed Apr 28, 2016
1 parent 95b8a5f commit 155902a
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

import com.chad.baserecyclerviewadapterhelper.adapter.QuickAdapter;
import com.chad.baserecyclerviewadapterhelper.animation.CustomAnimation;
import com.chad.baserecyclerviewadapterhelper.entity.Status;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.jaredrummler.materialspinner.MaterialSpinner;

Expand All @@ -33,10 +34,20 @@ protected void onCreate(Bundle savedInstanceState) {
private void initAdapter() {
mQuickAdapter = new QuickAdapter(this);
mQuickAdapter.openLoadAnimation();
mQuickAdapter.setOnRecyclerViewItemClickListener(new BaseQuickAdapter.OnRecyclerViewItemClickListener() {
mQuickAdapter.setOnRecyclerViewItemChildClickListener(new BaseQuickAdapter.OnRecyclerViewItemChildClickListener() {
@Override
public void onItemClick(View view, int position) {
Toast.makeText(AnimationUseActivity.this, Integer.toString(position), Toast.LENGTH_LONG).show();
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
String content = null;
Status status = (Status) adapter.getItem(position);
switch (view.getId()) {
case R.id.tweetAvatar:
content = "img:" + status.getUserAvatar();
break;
case R.id.tweetName:
content = "name:" + status.getUserName();
break;
}
Toast.makeText(AnimationUseActivity.this, content, Toast.LENGTH_LONG).show();
}
});
mRecyclerView.setAdapter(mQuickAdapter);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,12 @@ protected void convert(BaseViewHolder helper, Status item) {
helper.setText(R.id.tweetName, item.getUserName())
.setText(R.id.tweetText, item.getText())
.setText(R.id.tweetDate, item.getCreatedAt())
.setImageUrl(R.id.tweetAvatar, item.getUserAvatar())
.setImageUrl(R.id.tweetAvatar, item.getUserAvatar(), R.mipmap.ic_launcher)
.setVisible(R.id.tweetRT, item.isRetweet())
.setOnClickListener(R.id.tweetAvatar, new OnItemChildClickListener())
.setOnClickListener(R.id.tweetName, new OnItemChildClickListener())
.linkify(R.id.tweetText);
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,25 @@ public interface OnRecyclerViewItemClickListener {
public void onItemClick(View view, int position);
}

private OnRecyclerViewItemChildClickListener mChildClickListener;

public void setOnRecyclerViewItemChildClickListener(OnRecyclerViewItemChildClickListener childClickListener) {
this.mChildClickListener = childClickListener;
}

public interface OnRecyclerViewItemChildClickListener {
void onItemChildClick(BaseQuickAdapter adapter, View view, int position);
}

public class OnItemChildClickListener implements View.OnClickListener {
public int position;
@Override
public void onClick(View v) {
if (mChildClickListener != null)
mChildClickListener.onItemChildClick(BaseQuickAdapter.this, v, position - getHeaderViewsCount());
}
}


/**
* Same as QuickAdapter#QuickAdapter(Context,int) but with
Expand Down Expand Up @@ -151,6 +170,17 @@ public List getData() {
return mData;
}

/**
* Get the data item associated with the specified position in the data set.
*
* @param position Position of the item whose data we want within the adapter's
* data set.
* @return The data at the specified position.
*/
public T getItem(int position){
return mData.get(position);
};

public int getHeaderViewsCount() {
return mHeaderView == null ? 0 : 1;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,12 @@ public BaseViewHolder setOnClickListener(int viewId, View.OnClickListener listen
view.setOnClickListener(listener);
return this;
}
public BaseViewHolder setOnClickListener(int viewId, BaseQuickAdapter.OnItemChildClickListener listener) {
View view = getView(viewId);
listener.position = getAdapterPosition();
view.setOnClickListener(listener);
return this;
}

/**
* Sets the on touch listener of the view.
Expand Down

0 comments on commit 155902a

Please sign in to comment.