2017-01-10 16 views
0

私はここで簡単な質問をしていますが、どうすればいいか分かりません。だから、私のクラスは別のアクティビティに渡されるEditText値を持つSpinnerを持っています。 EditTextをボタンクリックトリガーの別のアクティビティに渡すことができました。しかし、以下のコードのようにStringに設定したSpinnerの値を渡す方法はわかりません。おそらく、誰かが私に、ボタンをクリックすると、両方の値を次のアクティビティに渡すことができるかどうかを示すことができます。私はより良い解決策を望みます。ありがとうございました。ボタンをクリックしたときにスピナーの値を別のアクティビティに渡す

public class SearchActivity extends AppCompatActivity implements View.OnClickListener { 
    private EditText editTextProduct; 
    private Button btnSearch; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.search_product); 

     editTextProduct = (EditText) findViewById(R.id.editTextProduct); 
     btnSearch = (Button) findViewById(R.id.btnSearch); 

     btnSearch.setOnClickListener(this); 

     initializedSpinner(); 
    } 

    private void initializedSpinner(){ 
     // Spinner element 
     Spinner spinner = (Spinner) findViewById(R.id.spinner_search); 

     // Spinner Drop down elements 
     List<String> categories = new ArrayList<String>(); 
     categories.add("Search By Name"); 
     categories.add("Search By Type"); 

     // Creating adapter for spinner 
     ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories); 

     //spinner.setAdapter(dataAdapter); 
     // Drop down layout style - list view with radio button 
     dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

     // attaching data adapter to spinner 
     spinner.setAdapter(dataAdapter); 
     spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 

       String searchItem = parent.getItemAtPosition(position).toString(); 

       Toast.makeText(parent.getContext(),searchItem + " Selected" , Toast.LENGTH_LONG).show(); 
      } 

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

      } 
     }); 
    } 

    private void searchData() { 
     String productName = editTextProduct.getText().toString().trim(); 
     if (productName.equals("")) { 
      Toast.makeText(this, "Please Enter Product Name", Toast.LENGTH_LONG).show(); 
      return; 
     } 
     else{ 
      Intent i = new Intent(SearchActivity.this, ListProductActivity.class); 
      EditText tv5 = (EditText) findViewById(R.id.editTextProduct); 
      i.putExtra("productName",tv5.getText().toString()); 
      startActivity(i); 
     } 
    } 

    @Override 
    public void onClick(View v) { 

     searchData(); 
    } 
} 
+2

クラスへのグローバルなメイク '文字列searchItem'とおそらくこれは、(意図でそれを渡し、その後シリアル化)するのに役立ちますどこでも –

+0

をしたい、それを使用します。 [シリアル](http://stackoverflow.com/a/2736612/7373508) –

答えて

0

次のような値を渡すことができます。

@Override 
    public void onClick(View v) { 

     Intent i = new Intent(SearchActivity.this, ListProductActivity.class); 
      i.putExtra("editTextValue",editTextProduct.getText().toString()); 
      i.putExtra("spinnerValue",spinner.getSelectedItem().toString()); 
      startActivity(i); 
    } 
1

はスピナークリックでこれを試してみてください:

String Text = mySpinner.getSelectedItem().toString(); 

あなたは、スピナーで選択した文字列を取得します。 取得したテキスト値が何であれ、putExtras経由でインテントから渡すだけで済みます。

0
String[] stdarray = { "KG", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", "XI", "XII", "Other" }; 

     ArrayAdapter aa = new ArrayAdapter<String>(getActivity(), R.layout.layout_std, stdarray); 

     final ListView lv = (ListView) rootView.findViewById(R.id.listView); 

     lv.setAdapter(aa); 

     lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       Tab1.sentfromStd(lv.getItemAtPosition(position).toString()); //I used static method here sentfromStd(), You can also use intents like others said for getting your job done. 
      } 
     }); 
関連する問題