私はAndroidアプリを持っており、そのメインアクティビティに変数(楽器)を渡す必要があります。簡単な質問のように思えるかもしれませんが、私は混乱します。周りを見回してみると、getInstrumentメソッドを作成するのは良い考えのように思えることにすでに気づきました。これは私がこれまでにしたことです:
public class MainActivity extends Activity{
//I need to read the instrument variable here
public void addListenerOnSpinnerItemSelection(){
instrumentSp = (Spinner) findViewById(R.id.instrument);
instrumentSp.setOnItemSelectedListener(new CustomOnItemSelectedListener());
}
}
別のクラス(別のファイル内):
public class CustomOnItemSelectedListener implements OnItemSelectedListener {
private int instrument;
public void onItemSelected(AdapterView<?> parent, View view, int pos,long id) {
Toast.makeText(parent.getContext(),
"Please wait a minute for the instrument to be changed. ", Toast.LENGTH_SHORT).show();
//"Item : " + parent.getItemAtPosition(pos).toString() + " selected" + pos,
//Toast.LENGTH_SHORT).show();
instrument = pos;
}
public int getInstrument(){
return instrument;
}
}
ただし、オブジェクトはリスナー内にのみ存在するため、メインアクティビティからgetInstrument()メソッドを呼び出すことはできないと思います。それを回避するための本当に簡単な方法があるはずです。いくつかの投稿を読みましたが、問題はクラスのオブジェクトが実際には存在しないことのようです。洞察をありがとう。