进度对话框未显示在列表视图的按钮单击事件中 [英] Progress dialog not showing in button click event in listview

查看:91
本文介绍了进度对话框未显示在列表视图的按钮单击事件中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在列表视图的每个列表项中都有一个按钮.在该按钮单击事件中,我有一些代码要运行.在点击事件中,即时消息会在代码运行之前显示进度对话框.但没有显示出来.单击事件中的所有代码完成后,将显示最终进度对话框.请帮我.

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;
    }

推荐答案

尝试一下.

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;
}
}

这篇关于进度对话框未显示在列表视图的按钮单击事件中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆