Java 单击微调器项并调用第二个微调器列表项的asynctask

Java 单击微调器项并调用第二个微调器列表项的asynctask,java,android,Java,Android,我正在开发一个应用程序,其中我需要从一个webservice填充微调器,并且还有第二个微调器,在选择第一个微调器项目后填充。第二个(微调器B)取决于微调器A。我得到了A的列表,但B微调器有问题 我的基本要求是,当我选择微调器“A”的项目时,它将加载微调器“b”的所有项目 下面是代码:: package com.CaribPay; import android.app.Activity; import android.app.ProgressDialog; import android.cont

我正在开发一个应用程序,其中我需要从一个
webservice
填充微调器,并且还有第二个微调器,在选择第一个微调器项目后填充。第二个(微调器B)取决于微调器A。我得到了A的列表,但B微调器有问题


我的基本要求是,当我选择微调器“A”的项目时,它将加载微调器“b”的所有项目 下面是代码::

package com.CaribPay;

import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import com.Setting.CustomParser;

public class Register2 extends Activity implements OnItemClickListener {
    private Button BtnReg2Next;
    private EditText EdtxReg2Streetadd1,
                     EdtxReg2Streetadd2,
                     EdtxReg2City,
                     EdtxReg2Zipcode;

    private Spinner 
                    SpnrReg2Contry,
                    SpnrReg2Agent,
                    SpnrReg2State,
                    SpnrReg2PrimaryCurr,
                    SpnrReg2SecondaryCurr;

    private CustomParser cstParsr = new CustomParser();

    private String[] Regstrationstep1;
    private String[] strCountry,strProvince;
    private String[] Primarysecondarycur;
    private int globPosition;
    private String strSelecteccontry;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.register2);
        GetDataFromLastPage();

        new FillSpinnerTask().execute();



    }

      private class FillSpinnerTask  extends AsyncTask<Void, Void, Void> {
            private ProgressDialog dialog = new ProgressDialog(
                    Register2.this);

            @Override
            protected void onPreExecute() {
                this.dialog.setMessage(getString(R.string.MsgPleasewait));
                this.dialog.show();
                this.dialog.setCancelable(false);
                // put your code which preload with processDialog

            }

            @Override
            protected Void doInBackground(Void... arg0) {
                // put your code here
                strCountry = cstParsr.LoadCountriesForMobApp(getApplicationContext());

                return null;
            }

            @Override
            protected void onPostExecute(final Void unused) {
                if (this.dialog.isShowing()) {
                    try {
                        this.dialog.dismiss();
                        this.dialog = null;
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    if(strCountry != null)
                    {
                        for(int i=0;i<strCountry.length;i++)
                        {
                            Log.i("TAG","strCountry"+strCountry[i]);
                        }

                    }
                    FillView();

                }
            }
        }


    private void FillView() {

        BtnReg2Next = (Button)findViewById(R.id.BtnReg2Next);
        EdtxReg2Streetadd1 = (EditText)findViewById(R.id.EdtxReg2Streetadd1);
        EdtxReg2Streetadd2= (EditText)findViewById(R.id.EdtxReg2Streetadd2);
        EdtxReg2City  = (EditText)findViewById(R.id.EdtxReg2City);
        EdtxReg2Zipcode =  (EditText)findViewById(R.id.EdtxReg2Zipcode);

        SpnrReg2Contry = (Spinner)findViewById(R.id.SpnrReg2Contry); 
        SpnrReg2Agent = (Spinner)findViewById(R.id.SpnrReg2Agent);
        SpnrReg2State = (Spinner)findViewById(R.id.SpnrReg2State);
        SpnrReg2PrimaryCurr = (Spinner)findViewById(R.id.SpnrReg2PrimaryCurr);
        SpnrReg2SecondaryCurr= (Spinner)findViewById(R.id.SpnrReg2SecondaryCurr);


        if(strCountry != null)
        {
            ArrayAdapter languagelist = new ArrayAdapter(
                Register2.this,
                android.R.layout.simple_spinner_item, 
                strCountry);

            languagelist.setDropDownViewResource(
                android.R.layout.simple_spinner_dropdown_item);
            SpnrReg2Contry.setAdapter(languagelist);
        }


        SpnrReg2Contry.setOnItemSelectedListener(new OnItemSelectedListener() 
           {
                public void onItemSelected(AdapterView<?> parent, View view,
                        int position, long arg3) 
                {   

                        strSelecteccontry = strCountry[position];
                        new FillProvinceSpinnerTask().execute();

                }

                @Override
                public void onNothingSelected(AdapterView<?> arg0) {

                }


            });

        /*SpnrReg2State.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if(strProvince == null)
                {
                new FillProvinceSpinnerTask().execute();
                }
                return true;
            }
        });*/



        BtnReg2Next.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                if(EdtxReg2Streetadd1.getText().toString().equalsIgnoreCase("")|
                     EdtxReg2Streetadd2.getText().toString().equalsIgnoreCase("")|
                     EdtxReg2City.getText().toString().equalsIgnoreCase("")|
                     EdtxReg2Zipcode.getText().toString().equalsIgnoreCase(""))
                {
                    Toast.makeText(getApplication(),getString(R.string.nullmessage),Toast.LENGTH_LONG).show();
                }else
                {
                     Intent Registration2 = new Intent(Register2.this,Register3.class);
                     startActivity(Registration2);
                     finish();
                }


            }
        });
    }

    private void GetDataFromLastPage() {
        // TODO Auto-generated method stub
        Intent intent = getIntent();

        Regstrationstep1 = new String[9];
        Regstrationstep1 = intent.getStringArrayExtra("Regstrationstep1");


    }
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int Pos, long arg3) {
        // TODO Auto-generated method stub
    }

    private class FillProvinceSpinnerTask  extends AsyncTask<Void, Void, Void> {
        private ProgressDialog dialog = new ProgressDialog(
                Register2.this);

        @Override
        protected void onPreExecute() {
            this.dialog.setMessage(getString(R.string.MsgPleasewait));
            this.dialog.show();
            this.dialog.setCancelable(false);
            // put your code which preload with processDialog

        }

        @Override
        protected Void doInBackground(Void... arg0) {
            // put your code here
            strProvince = cstParsr.LoadProvinceFromCountryForMobApp(getApplicationContext(),strSelecteccontry);


            return null;
        }

        @Override
        protected void onPostExecute(final Void unused) {
            if (this.dialog.isShowing()) {
                try {
                    this.dialog.dismiss();
                    this.dialog = null;
                } catch (Exception e) {
                    e.printStackTrace();
                }

                if(strProvince != null)
                {


                    Primarysecondarycur = strProvince[0].split("~");
                    strProvince[0] = "Please Select a State";
                ArrayAdapter languagelist = new ArrayAdapter(
                        Register2.this,
                        android.R.layout.simple_spinner_item, 
                        strProvince);

                languagelist.setDropDownViewResource(
                   android.R.layout.simple_spinner_dropdown_item);
                SpnrReg2State.setAdapter(languagelist);


                }
            }
        }
    }


}
package com.CaribPay;
导入android.app.Activity;
导入android.app.ProgressDialog;
导入android.content.Intent;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.AdapterView.OnItemSelectedListener;
导入android.widget.ArrayAdapter;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.Spinner;
导入android.widget.Toast;
导入com.Setting.CustomParser;
公共类注册器2扩展活动实现MClickListener{
私人按钮BtnReg2Next;
私有编辑文本EdtxReg2Streetadd1,
EdtxReg2Streetadd2,
EdtxReg2City,
EdtxReg2Zipcode;
私人纺纱机
SPNRREG2合同,
SPNReg2agent,
SpnrReg2State,
SPNRREG2原币,
SpnrReg2SecondaryCurr;
私有CustomParser cstParsr=新CustomParser();
私有字符串[]Regstrationstep1;
私有字符串[]strCountry,strProvince;
私有字符串[]Primarysecondarycur;
私人职位;
私有字符串strselectcontrol;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.register2);
GetDataFromLastPage();
新建FillSpinnerTask().execute();
}
私有类FillSpinnerTask扩展了AsyncTask{
private ProgressDialog=新建ProgressDialog(
登记处2.本条);
@凌驾
受保护的void onPreExecute(){
setMessage(getString(R.string.MsgPleasewait));
this.dialog.show();
this.dialog.setCancelable(false);
//将预加载的代码放入processDialog
}
@凌驾
受保护的Void doInBackground(Void…arg0){
//把你的代码放在这里
strCountry=cstParsr.loadcountriesforombapp(getApplicationContext());
返回null;
}
@凌驾
后期执行时受保护的无效(最终无效未使用){
if(this.dialog.isShowing()){
试一试{
this.dialog.disclose();
this.dialog=null;
}捕获(例外e){
e、 printStackTrace();
}
如果(strCountry!=null)
{
for(int i=0;i arg0){
}
});
/*SpnrReg2State.setOnTouchListener(新的OnTouchListener(){
@凌驾
公共布尔onTouch(视图v,运动事件){
如果(strProvince==null)
{
新建FillProvinceSpinnerTask().execute();
}
返回true;
}
});*/
BtnReg2Next.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
if(EdtxReg2Streetadd1.getText().toString().equalsIgnoreCase(“”)|
EdtxReg2Streetadd2.getText().toString().equalsIgnoreCase(“”)|
EdtxReg2City.getText().toString().equalsIgnoreCase(“”)|
EdtxReg2Zipcode.getText().toString().equalsIgnoreCase(“”)
{
Toast.makeText(getApplication()、getString(R.string.nullmessage)、Toast.LENGTH_LONG.show();
}否则
{
意向注册2=新意向(Register2.this,Register3.class);
startActivity(注册2);
完成();
}
}
});
}
私有void GetDataFromLastPage(){
//TODO自动生成的方法存根
Intent=getIntent();
Regstrationstep1=新字符串[9];
Regstrationstep1=intent.getStringArrayExtra(“Regstrationstep1”);
}
@凌驾
公共链接(AdapterView arg0、视图arg1、内部位置、长arg3){
//TODO自动生成的方法存根
}
私有类FillProvinceSpinnerTask扩展了AsyncTask{
private ProgressDialog=新建ProgressDialog(
登记处2.本条);
@凌驾
受保护的void onPreExecute(){
setMessage(getString(R.string.MsgPleasewait));
this.dialog.show();
this.dialog.setCancelable(false);
//将预加载的代码放入processDialog
}
@凌驾
受保护的Void doInBackground(Void…arg0){
//把你的代码放在这里
strProvince=cstParsr.LoadProvinceFromCountryFormoApp(getApplicationContext(),strSelect控件);
返回null;
}
@凌驾
后期执行时受保护的无效(最终无效未使用){
if(this.dialog.isShowing()){
试一试{
this.dialog.disclose();
this.dialog=null;
}捕获(例外e){
e、 printStackTrace();
}
if(strProvince!=null)
{
Primarysecondarycur=strProvince[0]。拆分(“~”;
STRPROVICE[0]=“请选择一个状态”;
阵列自适应局域网
    int count = 0;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(...);
        ...
        spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int arg2, long arg3) {
                if(count>0) {
                    // do what you want on item selection
                } else {
                    count++;
                }
            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
            }
        });
    }