首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在RecyclerView中使用活动

在RecyclerView中使用活动
EN

Stack Overflow用户
提问于 2019-12-22 13:49:29
回答 1查看 47关注 0票数 3

您好,我想让用户asynctaskonPreExecute中使用扩展RecyclerView的类,我应该使用viewDialog = new ViewDialog();的活动,但我不知道应该如何使用我的代码:

代码语言:javascript
运行
复制
public class MainCatRecycleAdapter extends RecyclerView.Adapter<viewholder> {

 ArrayList<MainCatRecycleInfo> mainCatRecycleInfos = new ArrayList<>();

 public MainCatRecycleAdapter(ArrayList<MainCatRecycleInfo> mainCatRecycleInfos) {
    this.mainCatRecycleInfos = mainCatRecycleInfos;
 }

 @Override
 public viewholder onCreateViewHolder(ViewGroup parent, int i) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.main_cat_recycle_product, parent, false);
    return new viewholder(view);
 }

 @Override
 public void onBindViewHolder(@NonNull viewholder holder, int position) {
    MainCatRecycleInfo mainCatRecycleInfo = mainCatRecycleInfos.get(position);
    holder.txtname.setText(mainCatRecycleInfo.name);

    Picasso.with(G.Context).load(Paramater.pic + "maincatimage/" + mainCatRecycleInfo.image).into(holder.img);
    Log.i("dsfsd", Paramater.pic + "maincatimage/" + mainCatRecycleInfo.image);

    holder.id = mainCatRecycleInfo.id;
 }

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


class viewholder extends RecyclerView.ViewHolder {
ViewDialog viewDialog;

public ImageView img;
public TextView txtname;
public String id = "";
public LinearLayout linearLayout;
Runnable r;

public viewholder(View itemView) {
    super(itemView);
    img = (ImageView) itemView.findViewById(R.id.mainimgrecycle);
    txtname = (TextView) itemView.findViewById(R.id.maintextrcycle);
    linearLayout = (LinearLayout) itemView.findViewById(R.id.linearrecycle);
    linearLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            new AsyncTaskShowSubCats(Paramater.ip + "showSubCat.php",id).execute();

        }
    });
}



public class AsyncTaskShowSubCats extends AsyncTask {


    public String link = "";
    public String id="";


    public AsyncTaskShowSubCats(String link, String id) {
        this.link = link;
        this.id = id;

    }

    @Override
    protected Object doInBackground(Object[] objects) {
        try {
            String data = URLEncoder.encode("id", "utf-8") + "=" + URLEncoder.encode(id, "utf-8");


            URL url = new URL(link);
            URLConnection connection = url.openConnection();
            connection.setDoOutput(true);
            OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream());
            writer.write(data);
            writer.flush();


            BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            StringBuilder builder = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                builder.append(line);

            }
            ActivitySubCat.subcat = builder.toString();
            ActivitySerch.serch = builder.toString();

            Log.i("fdffs",builder.toString());



        } catch (Exception e) {

        }
        return "";
    }     

    @Override
    protected void onPreExecute() {

        viewDialog = new ViewDialog();

        viewDialog.showDialog();

        super.onPreExecute();
    }

    @Override
    protected void onPostExecute(Object o) {
            viewDialog.hideDialog();
            super.onPostExecute(o);
    }
  }
}
EN

回答 1

Stack Overflow用户

发布于 2019-12-22 16:35:03

要获取活动的上下文,可以通过适配器的构造函数传递上下文。如下所示:

代码语言:javascript
运行
复制
public class MainCatRecycleAdapter extends RecyclerView.Adapter<viewholder> {

 ArrayList<MainCatRecycleInfo> mainCatRecycleInfos = new ArrayList<>();
 private Context context;

 public MainCatRecycleAdapter(ArrayList<MainCatRecycleInfo> mainCatRecycleInfos, Context context) {
    this.mainCatRecycleInfos = mainCatRecycleInfos;
    this.context = context;
 }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59441919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档