简体   繁体   English

Stackoverflow错误

[英]Stackoverflow error

I'm using Retrofit, picasso and recyclerview.But the below error is coming. 我正在使用Retrofit,picasso和recyclerview.But以下错误即将来临。

Process: com.example.user.recyclerview, PID: 4871 java.lang.StackOverflowError 进程:com.example.user.recyclerview,PID:4871 java.lang.StackOverflowError

MainActivity.class MainActivity.class

    public class MainActivity extends AppCompatActivity
{
private RecyclerView recyclerView;
private DataAdapter dataAdapter;
private List<ModelData> modelDataList;

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    recyclerView = (RecyclerView) findViewById(R.id.card_recycle_view);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));
    getPopularMovies();
}

private void getPopularMovies()
{
    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl("http://pratikbutani.x10.mx")
            .addConverterFactory(GsonConverterFactory.create())
            .build();

    RetrofitInterface service = retrofit.create(RetrofitInterface.class);
    Call<ModelDataList> call =service.getJSON();

    call.enqueue(new Callback<ModelDataList>()
    {
        @Override
        public void onResponse(Call<ModelDataList> call, Response<ModelDataList> response)
        {
            ModelDataList modelDataList = response.body();
            dataAdapter = new DataAdapter(modelDataList.getResults());
            recyclerView.setAdapter(dataAdapter);
        }

        @Override
        public void onFailure(Call<ModelDataList> call, Throwable t)
        {
            Log.d("Main","failure");
        }
    }); 
  }
}

ModelDataList.java ModelDataList.java

 public class ModelDataList
  {
   private List<ModelData> results;

public List<ModelData> getResults()
{
    return results;
}
}

DataAdapter.java DataAdapter.java

      public class DataAdapter extends RecyclerView.Adapter<DataAdapter.ViewHolder>
   {
            private List<ModelData> modelDataList;
            private LayoutInflater layoutInflater;
            private Context context;

public DataAdapter(List<ModelData> modelDataList)
{
    this.context = new AppCompatActivity();
    this.modelDataList = modelDataList;
    this.layoutInflater = LayoutInflater.from(context);
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)
{
    View view = layoutInflater.inflate(R.layout.card_view, parent, false);
    ViewHolder viewHolder = new ViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(ViewHolder holder, int position)
{
    ModelData modelData = modelDataList.get(position);
    holder.textView.setText(modelData.getName());
    Picasso.with(context).load(String.valueOf(modelData.getDisplay_pic())).placeholder(R.color.colorAccent).into(holder.imgview);
}

@Override
public int getItemCount()
{
    return modelDataList.size();
}

public class ViewHolder extends RecyclerView.ViewHolder
{
    private ImageView imgview;
    private TextView textView;

    public ViewHolder(View itemView)
    {
        super(itemView);
        imgview = (ImageView) itemView.findViewById(R.id.tv_image);
        textView = (TextView) itemView.findViewById(R.id.tv_name);
    }
}
   }

Not sure about your StackOverflowError issue. 不确定您的StackOverflowError问题。 One issue is how you get...context. 一个问题是你如何得到......背景。 You can get context from view instead of "this.context = new AppCompatActivity();" 您可以从视图中获取上下文而不是“this.context = new AppCompatActivity();” ex: LayoutInflater.from(parent.getContext()).inflate(R.layout.card_view, parent, false); 例如:LayoutInflater.from(parent.getContext())。inflate(R.layout.card_view,parent,false); Picasso.with(holder.imgview.getContext()).load(String.valueOf(modelData.getDisplay_pic())).placeholder(R.color.colorAccent).into(holder.imgview); 。Picasso.with(holder.imgview.getContext())的负载(将String.valueOf(modelData.getDisplay_pic()))占位符(R.color.colorAccent).into(holder.imgview)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM