2013-08-12 28 views
1

无法获取微调器的选定值。如何将微调器值转换为字符串

public class Create extends Activity { 

    public ArrayList<String> spinnerlist; 
    Button button4; 
    String spinnertext; 

    /** Called when the activity is first created. */ 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.create); 
     Spinner spinner = (Spinner) findViewById(R.id.spinner1); 

     spinnerlist=new ArrayList<String>(); 
     spinnerlist.add("ATM"); 
     spinnerlist.add("Bank"); 
     spinnerlist.add("Mail"); 
     spinnerlist.add("Others"); 
     spinnerlist.add("Personal"); 
     spinnerlist.add("Social Network"); 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, spinnerlist); 
     adapter.setNotifyOnChange(true); 
     spinner.setAdapter(adapter); 
     spinner.setLongClickable(true); 
     spinner.setOnLongClickListener(new OnLongClickListener(){ 
      public boolean onLongClick(View v) { 
       // TODO Auto-generated method stub 
       spinnertext = spinnerlist.**getSelectedItem()**.toString(); 
           return false; 

收到错误:该方法getSelectedItem()是不确定的ArrayList类型

 } 
     }); 


     button4 = (Button)findViewById(R.id.button4); 
     button4.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Intent myIntent5 = new Intent(view.getContext(), Details.class); 
       startActivityForResult(myIntent5, 0); 
       myIntent5 .putExtra("key", spinnerlist.getSelectedItem().toString()); 
       startActivity(myIntent5); 
       } 
     }); 

}} 

,我无法将字符串值传递给下一个活动?

+0

为什么您在微调器上实现onLongclickListener()而不是onItemSelectedListener()。 – SilentKiller

+1

使用spinner.getSelectedItem()。toString()不是数组列表,也意图不要使用view.getContext使用getApplicationContext()而不是 –

回答

4

你是从spinnerlist而不是微调获取值

button4.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      Intent myIntent5 = new Intent(view.getContext(), Details.class); 
      startActivityForResult(myIntent5, 0); 
      myIntent5.putExtra("key", spinner.getSelectedItem().toString()); 
      startActivity(myIntent5); 
      } 
    }); 

你需要spinner.getSelectedItem().toString()

+0

谢谢你兄弟。我试了这个,它的工作 – Abb

+0

@Abhishek我会说,首先尝试调试,然后在谷歌上搜索,然后问问题,所以..和它的我的快乐帮助.. – SilentKiller

0

使用setOnItemSelectedListener而不是onLongClickListener

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
     public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
      String item =String.ValueOf(parent.getItemAtPosition(pos)); 
     } 
     public void onNothingSelected(AdapterView<?> parent) { 
     } 
    }); 

button4.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
       Intent myIntent5 = new Intent(view.getContext(), Details.class); 
       startActivityForResult(myIntent5, 0); 
       myIntent5 .putExtra("key", item); 
       startActivity(myIntent5); 
       } 
     }); 
+0

我一定会尝试。谢谢 – Abb

+0

全局声明String项目。 –

0

更换spinnerlist.getSelectedItem().toString()您还可以得到价值一个简单的方式微调

Spinner ClassSpinner = (Spinner)findViewById(R.id.Class); 
String Class = ClassSpinner .getSelectedItem().toString();