Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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 如何从ArrayAdapter解除警报对话框_Java_Android_Android Arrayadapter_Android Alertdialog_Onclicklistener - Fatal编程技术网

Java 如何从ArrayAdapter解除警报对话框

Java 如何从ArrayAdapter解除警报对话框,java,android,android-arrayadapter,android-alertdialog,onclicklistener,Java,Android,Android Arrayadapter,Android Alertdialog,Onclicklistener,我使用ArrayAdapter创建了带有单选按钮的singe choice AlertDialog。当选择“比率”时,是否可能错过该警报对话框?我在ArrayAdapter类holder.name.setOnClickListener中有OnClick listener,但我不知道如何实现它 警报对话框代码: Builder builder = new Builder(serveris, useris, paswordas, BuildBuildingsViewActivity.this, US

我使用ArrayAdapter创建了带有单选按钮的singe choice AlertDialog。当选择“比率”时,是否可能错过该警报对话框?我在ArrayAdapter类holder.name.setOnClickListener中有OnClick listener,但我不知道如何实现它

警报对话框代码:

Builder builder = new Builder(serveris, useris, paswordas, BuildBuildingsViewActivity.this, USER_AGENT);

                        ArrayList<AvailableBuildings> availableBuildings = builder.checkForPossibleBuildings(pastatas.getBuildingLink());

                        ArrayAdapter<AvailableBuildings> adapter = new AvailableBuildingsAdapter(BuildBuildingsViewActivity.this, R.layout.choice_main, availableBuildings, host, curdid, pastatas.getBuildingLink());

                        new AlertDialog.Builder(BuildBuildingsViewActivity.this)
                        .setSingleChoiceItems(adapter, 0, null)
                        .setPositiveButton("Cancel", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int whichButton) {
                                dialog.dismiss();
                            }
                        })
                        .show();
Builder=new Builder(服务器、用户、密码、buildingsviewActivity.this、用户\代理);
ArrayList availableBuildings=builder.checkForPossibleBuildings(pastatas.getBuildingLink());
ArrayAdapter=new AvailableBuildingAdapter(BuildingViewActivity.this,R.layout.choice_main,availableBuildings,host,curdid,pastatas.getBuildingLink());
新建AlertDialog.Builder(BuildingViewActivity.this)
.setSingleChoiceItems(适配器,0,null)
.setPositiveButton(“取消”,新建DialogInterface.OnClickListener()对话框){
public void onClick(对话框接口对话框,int whichButton){
dialog.dismise();
}
})
.show();
阵列适配器代码:

public class AvailableBuildingsAdapter extends ArrayAdapter<AvailableBuildings> {

    public DBAdapterBuild db_build;

        public AvailableBuildingsAdapter(Context context, int textViewResourceId,ArrayList<AvailableBuildings> availableBuildings, String host, String curdid, String aiksteles_link) {
            super(context, textViewResourceId, availableBuildings);
            this.context = context;
            this.availableBuildings = new ArrayList<AvailableBuildings>();
            this.availableBuildings.addAll(availableBuildings);
            this.host = host;
            this.curdid = curdid;
            this.aiksteles_link = aiksteles_link;
            db_build = new DBAdapterBuild(context, host);
        }

        private String host;
        private Context context;
        private String curdid;
        private String aiksteles_link;
        private ArrayList<AvailableBuildings> availableBuildings;

        static class ViewHolder {
           RadioButton name;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent)
        {

            ViewHolder holder;


            if (convertView == null) {
                LayoutInflater vi = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                convertView = vi.inflate(R.layout.choice_row, null);

                holder = new ViewHolder();
                holder.name = (RadioButton) convertView.findViewById(R.id.building_name);
                convertView.setTag( holder );
                holder.name.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View v) {
                        db_build.open();
                        RadioButton name = (RadioButton) v;
                        AvailableBuildings building = (AvailableBuildings) name.getTag();
                        Log.e( "Available: ", ""+building.getAvailable_title()+building.getAvailable_code());
                        Log.e( "Available: ", ""+db_build.insertTitle(1, building.getAvailable_title(), aiksteles_link, curdid, 0, 1, building.getAvailable_type(), "3", building.getAvailable_code()));
                        db_build.close();


                    }
                });
            }  else {
                // view already defined, retrieve view holder
                holder = (ViewHolder) convertView.getTag();
            }

            AvailableBuildings building = availableBuildings.get(position);

            if ( building == null ) {

            }
            holder.name.setText(building.getAvailable_title());
            holder.name.setTag(building);

            return convertView;
        }
    }
公共类可用BuildingAdapter扩展ArrayAdapter{
公共DBAdapterBuild db_build;
公共可用的BuildingAdapter(上下文上下文、int textViewResourceId、ArrayList可用的Buildings、字符串主机、字符串curdid、字符串aiksteles_链接){
super(上下文、textViewResourceId、availableBuildings);
this.context=上下文;
this.availableBuildings=new ArrayList();
this.availableBuildings.addAll(availableBuildings);
this.host=host;
this.curdid=curdid;
this.aiksteles_link=aiksteles_link;
db_build=新的DBAdapterBuild(上下文,主机);
}
私有字符串主机;
私人语境;
私人字符串curdid;
专用字符串aiksteles_链接;
私有ArrayList可用建筑;
静态类视窗夹{
单选按钮名称;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图)
{
视窗座;
if(convertView==null){
LayoutInflater vi=(LayoutInflater)getContext().getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);
convertView=vi.充气(R.布局.选择行,空);
holder=新的ViewHolder();
holder.name=(单选按钮)convertView.findViewById(R.id.building\u name);
convertView.setTag(支架);
holder.name.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
db_build.open();
RadioButton名称=(RadioButton)v;
AvailableBuildings building=(AvailableBuildings)name.getTag();
Log.e(“可用:”,“+building.getAvailable_title()+building.getAvailable_code());
Log.e(“可用:”,“+db_build.insertTitle(1,building.getAvailable_title(),aiksteles_link,curdid,0,1,building.getAvailable_type(),“3”,building.getAvailable_code());
db_build.close();
}
});
}否则{
//视图已定义,检索视图持有者
holder=(ViewHolder)convertView.getTag();
}
AvailableBuildings building=AvailableBuildings.get(位置);
if(building==null){
}
holder.name.setText(building.getAvailable_title());
持有人名称、setTag(建筑物);
返回视图;
}
}

我通过传递到ArrayAdapter构造函数对话框对象来解决此问题,然后执行以下操作:

holder.name.setOnClickListener(new View.OnClickListener() {
                    public void onClick(View v) {
                        db_build.open();
                        RadioButton name = (RadioButton) v;
                        AvailableBuildings building = (AvailableBuildings) name.getTag();
                        Log.e( "Available: ", ""+building.getAvailable_title()+building.getAvailable_code());
                        Log.e( "Available: ", ""+db_build.insertTitle(1, building.getAvailable_title(), aiksteles_link, curdid, 0, 1, building.getAvailable_type(), "3", building.getAvailable_code()));
                        db_build.close();
                        dia.dismiss();
                    }
                });