2017-03-26 1 views
-1

setOnItemSelectedListener。関数 "onItemSelected"の外側で整数 "iDay2"にアクセスする方法は?

ArrayList<String> ad_days = new ArrayList<String>(); 
      int ad_endDays = 31; 
      for (int i = 1; i <= ad_endDays; i++) { 
       ad_days.add(Integer.toString(i)); 
      } 
      ArrayAdapter<String> ad_daysAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, ad_days); 
      spnday2.setAdapter(ad_daysAdapter); 
      spnday2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
       @Override 
       public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
        Object objDay2 = parent.getItemAtPosition(position); 
        CharSequence charDay2= (CharSequence) objDay2; 
        String sDay2= (String) charDay2; 
        int iDay2 = Integer.parseInt(sDay2.toString()); 

       } 

       @Override 
       public void onNothingSelected(AdapterView<?> adapterView) 
       { 
       } 
      }); 
      button.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Toast.makeText(getApplicationContext(),iDay2 +" this Day",Toast.LENGTH_SHORT).show(); 
       } 

スピナーはint型で日付を表示しますが、私はボタンをクリックしたときに、私はonItemSelectedListnerの外側からデーにアクセスすることはできませんよ。

答えて

1

onItemSelectedの中で宣言するのではなく、フィールドをアクティビティの変数にします。

例:

public class MyActivity extends AppCompatActivity{ 
    private int iDay2; 

    //Your Code 
} 
関連する問題