2012-03-06 3 views
0

私は一晩中これを処理していましたが、私は脳の霧の中にいます。誰かが私に私を助けるコードsnipitを与えることができ、現在、これはSpinnerAのonCreateを移入する必要があります。spinnerBに、spinnerAのユーザーの選択肢から2つの配列(string.xmlから)のいずれかを入力してください

ArrayAdapter<CharSequence> adapterTypeGas = ArrayAdapter.createFromResource( this, R.array.TypeGas, android.R.layout.simple_spinner_item); adapterTypeGas.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinnerTypeGas.setAdapter(adapterTypeGas);

R.array.TypeGasの2つの選択肢「プロパンガス」または「天然ガス」を持っています。ユーザーが選択した内容に応じてSpinnerBにR.array.NaturalGasまたはR.array.PropaneGasのいずれかを使用させたい。私の問題は、Spinnerが作成されたときに、SpinnerA onItemSelectedの後になるまで、どのように変更するのですか?ご協力いただきありがとうございます。私はかなりあなたの答えに詳述することができれば発展することはかなり新しいです。

"RastheDestoryer"からコードを実装した後、spinnerBのArrayAdapterの "createFromResource"でエラーが発生します。エラーは次のとおりです。ArrayAdapter型のcreateFromResource(Context、int、int)メソッドは、引数(CSSTPipeSizingActivity.OnGasSelectedListener、int、int)には適用されません。私のmain.xmlファイルでは、spinnerBの配列を指定する必要があります(その配列はstrings.xmlファイルに格納されています)。これは問題だと思います。私のコードでは、別の配列を宣言しているからです。どのようにこれを解決するための任意の考えですか?スピナーが構築された直後

答えて

0

これは私が終わったコードです

public void main program() { 
... 
ArrayAdapter<CharSequence> adapterTypeGas = ArrayAdapter.createFromResource(
      this, R.array.TypeGas, android.R.layout.simple_spinner_item); 
     adapterTypeGas.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinnerTypeGas.setAdapter(adapterTypeGas); 

    //Sets up the spinnerPipeLength spinner 
    ArrayAdapter<CharSequence> adapterPipeLength = ArrayAdapter.createFromResource(
      this, R.array.PipeLength, android.R.layout.simple_spinner_item); 
     adapterPipeLength.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinnerPipeLength.setAdapter(adapterPipeLength); 

    // Listens for changes in the selected item in each spinner 
    spinnerTypeGas.setOnItemSelectedListener(new GASOnItemSelectedListener()); 
    spinnerSupplyPressure.setOnItemSelectedListener(new SupplyOnItemSelectedListener()); 
    spinnerPipeLength.setOnItemSelectedListener(new MyOnItemSelectedListener()); 
... 
} // end mainprogram() 

public void SpinnerNatGas() { 
    ArrayAdapter<CharSequence> adapterSupplyPressure = ArrayAdapter.createFromResource(
      this, R.array.NaturalGas, android.R.layout.simple_spinner_item); 
    adapterSupplyPressure.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinnerSupplyPressure.setAdapter(adapterSupplyPressure); 
    adapterSupplyPressure.notifyDataSetChanged(); 
} // end SpinnerNatGAs() 

public void SpinnerProGas() { 
    ArrayAdapter<CharSequence> adapterSupplyPressure = ArrayAdapter.createFromResource(
      this, R.array.PropaneGas, android.R.layout.simple_spinner_item); 
    adapterSupplyPressure.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinnerSupplyPressure.setAdapter(adapterSupplyPressure); 
    adapterSupplyPressure.notifyDataSetChanged(); 
} // end SpinnerProGAs() 
0

全体のクラスに

public class OnGasSelectedListener implements OnItemSelectedListener { 
    public void onItemSelected(AdapterView<?> parent, View view, int pos, 
    long id) { 
    //set all of spinnerB adapter stuff here 

    } 
    public void onNothingSelected(AdapterView<?> parent) {} 
} 

をonitemSelectedリスナーを追加し、spinnerTypeGas

onitemselected
spinnerTypeGas.setOnItemSelectedListener(new OnGasSelectedListener()); 

にリスナーを追加しますがトリガされるたびにユーザーが選択を変更します

0
 public class MainActivity extends Activity implements OnItemSelectedListener{ 
    Spinner chooseproject,choosetask; 
    public static ArrayList<String>projectnameList,propanegasList,naturalgaslist; 
    @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 
    projectnameList=new ArrayList<String>(); 
    propanegasList=new ArrayList<String>(); 
    naturalgaslist=new ArrayList<String>(); 
    projectnameList.add("Propane Gas"); 
    projectnameList.add("Natural Gas"); 
propanegasList.add("p1"); 
propanegasList.add("p2"); 
propanegasList.add("p3"); 
propanegasList.add("p4"); 
propanegasList.add("p5"); 
naturalgaslist.add("n1"); 
naturalgaslist.add("n2"); 
naturalgaslist.add("n3"); 
naturalgaslist.add("n4"); 
naturalgaslist.add("n5"); 

    chooseproject=(Spinner)findViewById(R.id.chooseproject_dropdown); 
      choosetask=(Spinner)findViewById(R.id.choosetask_dropdown); 
    chooseproject.setOnItemSelectedListener(this); 
    ArrayAdapter<String> projectName=new ArrayAdapter<String> 
       (this,R.layout.dropdow_spinner_dropdown_item,projectnameList); 
       projectName.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
       chooseproject.setAdapter(projectName); 
    choosetask.setOnItemSelectedListener(this); 

    } 
    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 
      switch(arg0.getId()) 
      { 
      case R.id.chooseproject_dropdown: 

       String ProjectName=chooseproject.getSelectedItem().toString(); 



        if(ProjectName.equalsIgnoreCase("Propane Gas") 
    { 
    ArrayAdapter<String> projectTask=new ArrayAdapter<String> 
        (this,R.layout.dropdow_spinner_dropdown_item,propanegasList); 
        projectTask.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
        choosetask.setAdapter(projectTask); 
    } 
    else 
    { 
    ArrayAdapter<String> projectTask=new ArrayAdapter<String> 
        (this,R.layout.dropdow_spinner_dropdown_item,naturalgaslist); 
        projectTask.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
        choosetask.setAdapter(projectTask); 
    } 
    } 


       break; 
      case R.id.choosetask_dropdown: 

       String ProjectTaskName=choosetask.getSelectedItem().toString(); 

       break; 
      } 


     } 
    } 
+0

コードをお寄せいただきありがとうございます。これは私が探していたものです。私はコードの残りの部分にバグがあるので、それをデバッグしています。それから私は確認することができます。私はすべてArrayAdapterを変更する必要がありました ... R.layout.dropdow_spinner_dropdown_item to R.layout.main – deerkiller11

+0

私のコードをデバッグした後、このメソッドはうまくいかず、何らかの理由でspinnerBはまだstrings.xmlファイルからデータを取得しています実行時間。 spinnerAからの選択が終わるまで待ち、strings.xmlファイルからarrayAまたはarrayBのどちらかをロードします。あなたの仕事に感謝して、私のコーディングを整理するのを助けました。 – deerkiller11

関連する問題