java - 从另一个类访问 MainActivity 中的方法

标签 java android class android-activity listener

我认为我的 Android 应用程序在某个地方犯了设计错误。我的(简化的)代码粘贴在下面。

我在 MainActivity 中使用 writeMidi 方法。但是,当在自定义监听器中触发“onItemSelected”时,我也想使用它,或者实际上只是触发它。

我对如何做到这一点感到有点困惑。我应该重新设计此代码以适应主要 Activity 中的自定义监听器吗?

感谢您的帮助。

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;
      }

    }

最佳答案

在主类中使用广播接收器并发送不同类型的广播(不同的消息)来激活主 Activity 中的不同方法。

关于java - 从另一个类访问 MainActivity 中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13622510/

相关文章:

android - 使用JavaCV在Android上录制视频(2014年02月17日更新)

java - 尽管评估错误,但扫描仪表达式的 while 循环仍在继续

java - Google Guice 绑定(bind)不适用于 Integer 和 Long

java - 在 Java 中如何将 "space and dot"替换为 "dot"?

javascript - 如何处理与 jQuery 不冲突的对象类

java - 在单独的文件中找不到类

c++ - 如何在 C 中使用 printf 查找对象类型?

java - 是否有一个jvm参数导致jvm在启动时创建一个hprof文件

android - PreferenceFragment 是否有意从兼容性包中排除?

android - 如何让旧的自定义 ActionBar 出现在新的 SDK 上?