Progress dialog not showing in button click event in listview

心不动则不痛 提交于 2019-12-11 18:21:57

问题


I have a button in each list item of list view. In that button click event i have some codes to run. In click event im showing the progress dialog before the code runs. but its not getting shown. After all the codes in click event completes in the end progress dialog gets shown. Plz help me.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity1);

    TheListViewM = (ListView) findViewById(R.id.lvItems);
    ImageAdapter anImageAdapterM =new ImageAdapter(this);
    TheListViewM.setAdapter(anImageAdapterM);

}


public class ImageAdapter extends BaseAdapter {
    private Context mContextL;

    public ImageAdapter(Context contextP) {
        mContextL = contextP;
    }

    public int getCount() {
        return ItemList.GetLength();
    }

    public Object getItem(int PositionP) {
        return ItemList.GetObject(PositionP);
    }

    public long getItemId(int PositionP) {
        return PositionP;
    }

    public View getView(final int PositionP, View ConvertViewP, ViewGroup ParentP) {



        if (ConvertViewP == null) {
            LayoutInflater inflater = (LayoutInflater) mContextL.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            ConvertViewP = inflater.inflate(R.layout.add_cart_row_layout, ParentP, false);
        }
        TextView textView1 = (TextView) ConvertViewP.findViewById(R.id.tvName);
        textView1.setText("asdfg");
        final Spinner spQuantity = (Spinner) ConvertViewP.findViewById(R.id.spQuantity);

        spQuantity.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> Parent, View view,
                    int pos, long id) {


                    ProgressDialog aProgressDialogL = new ProgressDialog(mContextL);
                    aProgressDialogL.setMessage("Loading...");
                    aProgressDialogL.show();

                    //Processiing codes
                }

            }
            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub
            }
        });
        ArrayAdapter<String> QuantityAdapter1 = new ArrayAdapter<String>(mContextL,android.R.layout.simple_spinner_item, QuantityList);

        QuantityAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spQuantity.setAdapter(QuantityAdapter1);

        Button btn1 = (Button) ConvertViewP.findViewById(R.id.btn1);
                    btn1.setOnClickListener(new View.OnClickListener() {
                        public void onClick(View v) {

                            ProgressDialog aProgressDialogL = new ProgressDialog(activity1.this);

                            aProgressDialogL.setMessage("Loading...");
                            aProgressDialogL.show();        }
                    });

                    return ConvertViewP;
    }

回答1:


Try this one.

public class ImageAdapter extends BaseAdapter {
private Context mContextL;

public ImageAdapter(Context contextP) {
    mContextL = contextP;
}

public int getCount() {
    return ItemList.GetLength();
}

public Object getItem(int PositionP) {
    return ItemList.GetObject(PositionP);
}

public long getItemId(int PositionP) {
    return PositionP;
}

class ViewHolder {
    Button btn1;
    TextView textView1;
    Spinner spQuantity;
}

public View getView(final int PositionP, View ConvertViewP, ViewGroup ParentP) {

    ViewHolder holder;

    if (ConvertViewP == null) {

        holder = new ViewHolder();
        LayoutInflater inflater = (LayoutInflater) mContextL.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        ConvertViewP = inflater.inflate(R.layout.add_cart_row_layout, ParentP, false);
        holder.textView1 = (TextView) ConvertViewP.findViewById(R.id.tvName);
        holder.spQuantity = (Spinner) ConvertViewP.findViewById(R.id.spQuantity);
        holder.btn1 = (Button) ConvertViewP.findViewById(R.id.btn1);

        ConvertViewP.setTag(holder);
    }
    else{
        holder = (ViewHolder) ConvertViewP.getTag();
    }
    holder.textView1.setText("asdfg");

    holder.spQuantity.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> Parent, View view,
                int pos, long id) {


                ProgressDialog aProgressDialogL = new ProgressDialog(mContextL);
                aProgressDialogL.setMessage("Loading...");
                aProgressDialogL.show();

                //Processiing codes

        }
        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub
        }
    });

    ArrayAdapter<String> QuantityAdapter1 = new ArrayAdapter<String>(mContextL,android.R.layout.simple_spinner_item, QuantityList);

    QuantityAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    holder.spQuantity.setAdapter(QuantityAdapter1);


               holder.btn1.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View v) {

                        ProgressDialog aProgressDialogL = new ProgressDialog(activity1.this);

                        aProgressDialogL.setMessage("Loading...");
                        aProgressDialogL.show();        }
                });

                return ConvertViewP;
}
}


来源:https://stackoverflow.com/questions/15785974/progress-dialog-not-showing-in-button-click-event-in-listview

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!