在Recyclerview的Adapter中添加变量后,在主活动不能调用,请问这是什么原因?怎么查都查不到,心态崩了
/**
* 添加新的Item
*/
public void addNewItem() {
if(mData == null) {
mData = new ArrayList<>();
}
mData.add(0, "new Item");
notifyItemInserted(0);
} /**
* 删除Item
*/
public void deleteItem() {
if(mData == null || mData.isEmpty()) {
return;
}
mData.remove(0);
notifyItemRemoved(0);
}
public void setOnItemClickListener(MyAdapter.OnItemClickListener listener) {
this.onItemClickListener = listener;
}这几个变量在主活动中就是错误的,无法调用
譬如mAdapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {…}错误: 找不到符号
符号: 方法 setOnItemClickListener(<匿名OnItemClickListener>)
位置: 类型为Adapter的变量 mAdaptermAdapter.addNewItem();
错误: 找不到符号
符号: 方法 addNewItem()
位置: 类型为Adapter的变量 mAdapter步骤都是一步步照着https://www.jianshu.com/p/4fc6164e4709来的
/**
* 添加新的Item
*/
public void addNewItem() {
if(mData == null) {
mData = new ArrayList<>();
}
mData.add(0, "new Item");
notifyItemInserted(0);
} /**
* 删除Item
*/
public void deleteItem() {
if(mData == null || mData.isEmpty()) {
return;
}
mData.remove(0);
notifyItemRemoved(0);
}
public void setOnItemClickListener(MyAdapter.OnItemClickListener listener) {
this.onItemClickListener = listener;
}这几个变量在主活动中就是错误的,无法调用
譬如mAdapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() {…}错误: 找不到符号
符号: 方法 setOnItemClickListener(<匿名OnItemClickListener>)
位置: 类型为Adapter的变量 mAdaptermAdapter.addNewItem();
错误: 找不到符号
符号: 方法 addNewItem()
位置: 类型为Adapter的变量 mAdapter步骤都是一步步照着https://www.jianshu.com/p/4fc6164e4709来的
解决方案 »
- achartengine图形处理问题
- 往RelativeLayout动态加入ImageView的问题
- MediaRecorder类中setVideoFrameRate方法的问题
- 修改boot.img, system.img, ramdisk.img和userdata.img
- Android实现拨号功能的问题
- 长按按键执行某个APK如何实现?
- 如何在tabActivity的一个tab标签页中使用googleMap?
- 急:安卓手机相同设备ID问题怎么解决?
- 如何同时设置background 和selector
- 哪位大牛做过Android支付宝的接口,请留个联系方式请教交流。
- 关于Android开发的一个数学功能的实现
- 请各路大神帮忙看看哪里有问题
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;import com.md.demo.R;import java.util.ArrayList;/**
* This implementation of {@link RecyclerView.Adapter}
*
* Created by KyoWang on 2016/06/30 .
*/
public class MDRvAdapter extends RecyclerView.Adapter<MDRvAdapter.ViewHolder>{ /**
* 展示数据
*/
private ArrayList<String> mData; /**
* 事件回调监听
*/
private MDRvAdapter.OnItemClickListener onItemClickListener; public MDRvAdapter(ArrayList<String> data) {
this.mData = data;
} public void updateData(ArrayList<String> data) {
this.mData = data;
notifyDataSetChanged();
} /**
* 添加新的Item
*/
public void addNewItem() {
if(mData == null) {
mData = new ArrayList<>();
}
mData.add(0, "new Item");
notifyItemInserted(0);
} /**
* 删除Item
*/
public void deleteItem() {
if(mData == null || mData.isEmpty()) {
return;
}
mData.remove(0);
notifyItemRemoved(0);
} /**
* 设置回调监听
*
* @param listener
*/
public void setOnItemClickListener(MDRvAdapter.OnItemClickListener listener) {
this.onItemClickListener = listener;
} @Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// 实例化展示的view
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_rv_item, parent, false);
// 实例化viewholder
ViewHolder viewHolder = new ViewHolder(v);
return viewHolder;
} @Override
public void onBindViewHolder(final ViewHolder holder, int position) {
// 绑定数据
holder.mTv.setText(mData.get(position)); holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
if(onItemClickListener != null) {
int pos = holder.getLayoutPosition();
onItemClickListener.onItemClick(holder.itemView, pos);
}
}
}); holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if(onItemClickListener != null) {
int pos = holder.getLayoutPosition();
onItemClickListener.onItemLongClick(holder.itemView, pos);
}
//表示此事件已经消费,不会触发单击事件
return true;
}
});
} @Override
public int getItemCount() {
return mData == null ? 0 : mData.size();
} public static class ViewHolder extends RecyclerView.ViewHolder { TextView mTv; public ViewHolder(View itemView) {
super(itemView);
mTv = (TextView) itemView.findViewById(R.id.item_tv);
}
} public interface OnItemClickListener {
void onItemClick(View view, int position);
void onItemLongClick(View view, int position);
}
}