Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java notifyItemChanged(i)在Android上崩溃_Java_Android - Fatal编程技术网

Java notifyItemChanged(i)在Android上崩溃

Java notifyItemChanged(i)在Android上崩溃,java,android,Java,Android,我正在尝试更新我的RecyclerView中的单个文本视图。我尝试使用mAdapter.notifyItemChanged(1);但这会使应用程序崩溃,我不知道为什么。调用mNumbersList.setAdapter(mAdapter);很好 这是我的适配器: public class GreenAdapter extends RecyclerView.Adapter<GreenAdapter.NumberViewHolder> { private final String TA

我正在尝试更新我的RecyclerView中的单个文本视图。我尝试使用mAdapter.notifyItemChanged(1);但这会使应用程序崩溃,我不知道为什么。调用mNumbersList.setAdapter(mAdapter);很好

这是我的适配器:

public class GreenAdapter extends RecyclerView.Adapter<GreenAdapter.NumberViewHolder> {

private final String TAG = GreenAdapter.class.getSimpleName();

private int mNumberItems;


public GreenAdapter(int numberOfItems) {
    mNumberItems = numberOfItems;
}

@Override
public NumberViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
    Context context = viewGroup.getContext();
    int layoutIdForListItem;
    if (viewType==1) { layoutIdForListItem = R.layout.first; } else {  layoutIdForListItem = R.layout.number_list_item; }
    LayoutInflater inflater = LayoutInflater.from(context);
    boolean shouldAttachToParentImmediately = false;

    View view = inflater.inflate(layoutIdForListItem, viewGroup, shouldAttachToParentImmediately);
    NumberViewHolder viewHolder = new NumberViewHolder(view);
    return viewHolder;
}

@Override
public int getItemViewType(int position) {
    int First;
    switch (position) {
        case 0: First=1;
            break;
        default:
            First = 0;
    }
    return First;
}

@Override
public void onBindViewHolder(NumberViewHolder holder, int position) {
    Log.d(TAG, "#" + position);
    holder.bind(position);
}


@Override
public int getItemCount() {
    return mNumberItems;
}

class NumberViewHolder extends RecyclerView.ViewHolder {


    TextView listItemNumberView;


    public NumberViewHolder(View itemView) {
        super(itemView);

        listItemNumberView = (TextView) itemView.findViewById(R.id.TV1);
    }


    void bind(int listIndex) {
        //String[] messages = getResources().getStringArray(R.array.messageArray);
         //listItemNumberView.setText(messages[listIndex]);
        switch (listIndex) {
            case 0: if (setStatusError) {Status="Cannot connect to eve-central";} listItemNumberView.setText(Status);
                break;
            case 1: listItemNumberView.setText(Buy[listIndex-1]+"    "+Sell[listIndex-1]);
                break;
            case 2: listItemNumberView.setText(Buy[listIndex-1]+"    "+Sell[listIndex-1]);
                break;
            default:listItemNumberView.setText(String.valueOf(listIndex));
        }
    }
}
}
公共类GreenAdapter扩展了RecyclerView.Adapter{ 私有最终字符串标记=GreenAdapter.class.getSimpleName(); 私人物品; 公共绿色适配器(int numberOfItems){ mNumberItems=numberOfItems; } @凌驾 public NumberViewHolder onCreateViewHolder(视图组视图组,int-viewType){ Context=viewGroup.getContext(); int layoutIdForListItem; 如果(viewType==1){layoutIdForListItem=R.layout.first;}否则{layoutIdForListItem=R.layout.number_列表项;} LayoutFlater充气机=LayoutFlater.from(上下文); 布尔值shouldAttachToparentInstallent=false; 视图=充气机。充气(布局用于列表项、视图组,应立即附加到选项); NumberViewHolder=新的NumberViewHolder(视图); 返回视图持有者; } @凌驾 public int getItemViewType(int位置){ int优先; 开关(位置){ 案例0:第一个=1; 打破 违约: 第一个=0; } 先返回; } @凌驾 BindViewHolder上的公共无效(数字文件夹持有人,内部位置){ Log.d(标记“#”+位置); 固定器。绑定(位置); } @凌驾 public int getItemCount(){ 归还物品; } 类NumberViewHolder扩展了RecyclerView.ViewHolder{ 文本视图listItemNumberView; public NumberViewHolder(查看项目视图){ 超级(项目视图); listItemNumberView=(TextView)itemView.findViewById(R.id.TV1); } 无效绑定(int-listIndex){ //String[]messages=getResources().getStringArray(R.array.messageArray); //listItemNumberView.setText(消息[listIndex]); 开关(列表索引){ 案例0:if(setStatusError){Status=“无法连接到eve中心”}listItemNumberView.setText(状态); 打破 案例1:listItemNumberView.setText(买入[listIndex-1]+“”+卖出[listIndex-1]); 打破 案例2:listItemNumberView.setText(买入[listIndex-1]+“”+卖出[listIndex-1]); 打破 默认值:listItemNumberView.setText(String.valueOf(listIndex)); } } } }
编辑:别担心我很愚蠢。我有一个处理程序可以这样做,但在调用RecyclerView之前它已经启动了…

发布错误日志@向导谢谢,我已经找到问题了。