내 안드로이드 애플 리케이션에서 어딘가에 설계 오류가 있다고 생각합니다. 내 (단순화 된) 코드가 아래에 붙여 넣어집니다.MainActivity에서 다른 클래스의 메서드에 액세스
MainActivity에서 writeMidi 메소드를 사용하고 있습니다. 그러나 "onItemSelected"가 사용자 정의 리스너에서 트리거되면이를 사용하거나 실제로 트리거하려고합니다.
나는 그 일을하는 방법에 대해 약간 찢겨 보인다. 주 활동에 customlistener를 맞추기 위해이 코드를 재 설계해야합니까?
도움 주셔서 감사합니다.
public class MainActivity extends Activity{
int song = 0;
int[] music;
public int instrument;
public CustomOnItemSelectedListener listener;
// *******************************************************
// set Layout - on create
// *******************************************************
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
instrument = 0;
listener = new CustomOnItemSelectedListener();
addListenerOnSpinnerItemSelection();
//more stuff, including using the writeMidi method
};
public void addListenerOnSpinnerItemSelection(){
instrumentSp = (Spinner) findViewById(R.id.instrument);
instrumentSp.setOnItemSelectedListener(listener);
}
public void writeMidi(int[] music, int count) {
// so some stff
}
}
및 별도의 파일;
public class CustomOnItemSelectedListener implements OnItemSelectedListener {
private int instrument = 0;
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();
instrument = pos;
}
public int getInstrument(){
return instrument;
}
}
좋아, 내가 그에 튜토리얼을 찾을 것입니다. – dorien
별도의 클래스가 활동 컨텍스트에 액세스해야합니까? – dorien
활동이 아닌 경우 해당 클래스에 응용 프로그램 컨텍스트를 전달하고 활동 인 경우 현재 활동의 컨텍스트를 사용하십시오. –