2012-03-14 27 views
5

Tôi cố gắng để lấy lại spinner giá trị được lựa chọn và tôi đã sử dụng đoạn mã sauĐang truy xuất mục đã chọn từ spinner?

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

Nhưng tôi không thể sử dụng giá trị của mặt hàng ngoài chức năng! Tôi rất mới để java xin vui lòng ai đó giúp tôi .. i cố gắng thực hiện nhận dạng giọng nói trong android

 public void speakButtonClicked(View v) 
        { 
         startVoiceRecognitionActivity(); 
        } 

        /** 
        * Fire an intent to start the voice recognition activity. 
        */ 
        private void startVoiceRecognitionActivity() 
        { 
         Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
         intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, 
         RecognizerIntent.LANGUAGE_MODEL_FREE_FORM); 


intent.putExtra(RecognizerIntent.EXTRA_PROMPT, "Voice recognition Demo..."); 
        startActivityForResult(intent, REQUEST_CODE); 
       } 

       /** 
       * Handle the results from the voice recognition activity. 
       */ 
       @Override 
      protected 
       void onActivityResult(int requestCode, int resultCode, Intent data) 
       { 


        if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) 
        { 
         // Populate the spinner with the String values the recognition engine thought it heard 

         ArrayList<String> matches = data.getStringArrayListExtra(
           RecognizerIntent.EXTRA_RESULTS); 
         final Button button12=(Button)findViewById(R.id.button12); 

         final Spinner Speech_spinner=(Spinner)findViewById(R.id.spinner3);   


        Speech_spinner.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, 
           matches)); 
        Speech_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
         public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { 
          Text = parent.getItemAtPosition(pos).toString(); 

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

         button12.setText(Text); 




         } 
        super.onActivityResult(requestCode, resultCode, data); 


       } 

Không có giá trị đang đến trong button12

Trả lời

1

khai báo mục Object ngoài onCreate để nó có sẵn cho toàn bộ lớp.

1
class Myactivity ...{ 

Object item ; 

oncreate(...){ 
    ... 

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

khi tôi sử dụng cuối cùng nó được hiển thị không hợp lệ modifier.i đã sử dụng spinner bên trong một chức năng trong lớp học chính của tôi – user1186739

+0

bạn có thể cho tôi biết trong đó phương pháp trong những gì bạn muốn từ spinner? –

+0

thực hiện nhận dạng giọng nói của google trong dự án của tôi..so đầu ra của recognizor tôi muốn ở bên trong spinner..i đã chỉnh sửa câu hỏi/vui lòng chekout chức năng – user1186739

1

sử dụng giá trị pos như một chỉ số cho mảng bạn đã thêm vào adapter và nhận được rằng giá trị hoặc

spnproj.setAdapter(new ArrayAdapter<String>(PaymentDetail.this, android.R.layout.simple_spinner_item,arr));  
    spnproj.setOnItemSelectedListener(new OnItemSelectedListener() { 

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

String value =arr[arg2]; 
2

sử dụng đối tượng cuối cùng như:

final Object item; 

ngoài onCreate

1

Bước 1. Nếu bạn đã thêm spinner tĩnh thì hãy sử dụng Spinner spin=(Spinner)findViewById(R.id.spinner); hoặc động bạn có thể sử dụng nó như Spinner spin=new Spinner(YourActivity.this)

mục Bước 2.Add trong mảng để hiển thị

array_spinner=new String[4]; 
array_spinner[0]="BFT"; 
array_spinner[1]="GFP"; 
array_spinner[2]="FSS"; 
array_spinner[3]="others"; 

Bước 3.Select bất kỳ mục từ spinner

ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, array_spinner); 
     spin.setAdapter(adapter); 

Bước 4. Lấy giá trị của giá trị đã chọn là

String anyvariable=String.valueOf(spin.getSelectedItem()); 
+0

tôi muốn sử dụng mục đã chọn – user1186739

+0

Bạn có thể nhận được giá trị được chọn item như String anyvar = String.valueOf (spin.getSelectedItem()); –

1

Nếu bạn không sử dụng nó khi người dùng đã chọn, tức là kêu gọi một số phương pháp trong bạn onItemSelectedspinner.getSelectedItem()

Như thế này trong mã của bạn:

... 
//get object to use 
Object myObj = spinner.getSelectedItem(); 
// use object. 

Nếu không xác định các đối tượng bên ngoài OnItemSelectedListener của bạn giống như câu trả lời khác.

Các vấn đề liên quan