2012-01-15 45 views
0

仍然是一個Android新手,但希望有人能指出我在這個問題上的正確方向。 我想要達到的是。 我有2個單選按鈕,當單擊它時,它將微調器中的數組更改爲加拿大,當我單擊其他數組時出現。這工作正常! 但我正在努力鉤住onClickListener(從微調onItemSelect)到提交按鈕。我想從中根據所選省份或州選擇打開新頁面。以及一些可能會告訴我一個switch語句,以及它將不勝感激。提前致謝。掛鉤微調到onClick監聽器,打開新頁面

String xml 

     <string name="prov_picker">Select a Province</string> 
    <string-array name="prov_array"> 
     <item>-- Select Province --</item> 
     <item>British Columbia</item> 
     <item>Alberta</item> 
     <item>Saskatchewan</item> 
     <item>Manitoba</item> 
     <item>Ontario</item> 
     <item>Quebec</item> 
     <item>New Brunswick</item> 
     <item>Nova Scotia</item> 
     <item>Newfoundland</item> 
    </string-array> 
    <string-array name="prov1_array"> 
     <item>-- Select State --</item> 
     <item>Washington</item> 
     <item>Florida</item> 
     <item>California</item> 
     <item>New York</item> 
     <item>Colorado</item> 
    </string-array> 
    <string name="radio1">Canadian</string>  
    <string name="radio2">US</string> 

xml 

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.RadioGroup; 
import android.widget.SpinnerAdapter; 
import android.widget.Toast; 
import android.widget.RadioGroup.OnCheckedChangeListener; 
import android.widget.Spinner; 
import android.view.View; 

public class CanProvselect extends Activity implements OnCheckedChangeListener { 
    /** Called when the activity is first created. */ 
    private RadioGroup RadioProvs; 
    private Button btn1; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.canprovselect); 

     btn1 = (Button)findViewById(R.id.button1); 
     RadioProvs = (RadioGroup) findViewById(R.id.rgProvs); 
     RadioProvs.setOnCheckedChangeListener(this); 
    } 
    public void onCheckedChanged(RadioGroup group, int checkedId) { 
     ArrayAdapter<CharSequence> adapter = null; 
     final Spinner spinner = (Spinner) findViewById(R.id.spinner); 

     switch (checkedId) { 
     case R.id.radio_1 : 
      adapter = ArrayAdapter.createFromResource(
        this, R.array.prov_array, android.R.layout.simple_spinner_item);  
      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  
      spinner.setAdapter(adapter); 
      spinner.setOnItemSelectedListener(new OnItemSelected(
        )); 
      break; 
     case R.id.radio_2 : 
      adapter = ArrayAdapter.createFromResource(
        this, R.array.prov1_array, android.R.layout.simple_spinner_item);  
      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  
      spinner.setAdapter(adapter); 
      spinner.setOnItemSelectedListener(new OnItemSelected(
        )); 
      break; 

     } 
     btn1.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
      String selected = (String) spinner.getSelectedItem(); 
     Intent myIntent = new Intent (spinner.getSelectedItem(), ProvBC.class); 
     startActivityForResult(myIntent, 0);  

}

 }); 
    } 
} 



onItemSelected 

    import android.view.View; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemSelectedListener; 
import android.widget.Toast; 

public class OnItemSelected implements OnItemSelectedListener { 
    private boolean isFirst = true; 

    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, 
      long arg3) { 

     if (isFirst) { 
      isFirst = false; 
      } else { 
     Toast.makeText(arg0.getContext(), "The country is"+arg0.getItemAtPosition(arg2).toString(), 
       Toast.LENGTH_SHORT).show(); 
      } 
    } 

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

    } 

} 

回答

1

試試下面

spinner.getSelectedItemId() OR spinner.getSelectedItem() 
+0

好的,我添加了onSelect。並更新了原始代碼。如果你不介意,你會介意給我一個我需要做的例子嗎?歡呼 – Calvin 2012-01-15 06:06:13

+0

好Thx。我更新了我的btn1代碼。我不知道如何構造意圖,如果你能看,我很難找到如何將這個實現成爲一個switch語句,爲不同的頁面不同的頁面意圖​​不同的位置。 – Calvin 2012-01-15 15:32:12

0

編輯: ü需要做到這一點:

btn1.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       } 
String selected = spinner.getSelectedItem().toString(); 


     }); 

和PAS作爲一個額外的

+0

我確實已經選定了它,但是我無法使用不選中的按鈕來觸發它。我想提交按鈕來獲取信息。 – Calvin 2012-01-15 05:36:18

+0

你可以使用'spinner.getSelectedItem()'並將其轉換爲'onClick()'的ur提交按鈕 – 2012-01-15 05:45:00

+0

Ok(我添加了onSelect)toString()。並更新了原始代碼。如果你不介意,你會介意給我一個我需要做的例子嗎?乾杯 – Calvin 2012-01-15 05:55:53

0

感謝大家爲您提供幫助的每一個人。得到它的工作。以下是其他人需要的示例。

btn1.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Spinner sp = (Spinner)findViewById(R.id.spinner); 
      String spinnerString = null; 
      spinnerString = sp.getSelectedItem().toString(); 

      if (spinnerString.equalsIgnoreCase("British Columbia")){ 
       Intent myIntent = new Intent (v.getContext(), ProvBC.class); 
       startActivityForResult(myIntent, 0); 
      } else 
       if (spinnerString.equalsIgnoreCase("Alberta")){ 
        Intent myIntent = new Intent (v.getContext(), ProvAb.class); 
        startActivityForResult(myIntent, 0); 
       } 

     } 
    });