android处理另一个类中的活动方法

时间:2018-07-04 09:21:03

标签: android android-activity

我有一个活动,我在此活动中创建了另一个类:

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

        new MahaleDialog(NewAdd.this);
    }

这是我的课程:

public class MahaleDialog implements View.OnClickListener,
        AdapterView.OnItemClickListener,
        com.google.android.gms.location.LocationListener,
        GoogleApiClient.ConnectionCallbacks,
        GoogleApiClient.OnConnectionFailedListener {

 public MahaleDialog(final Activity act){
        this.act = act;
}

我的课堂上有很多代码,我想在其中使用map,问题是,我需要在活动中访问方法,但需要在此类中处理它们。

例如,我要在此类中处理onStart或onBackPress。

我该怎么做?

5 个答案:

答案 0 :(得分:1)

您可以创建内部类的引用并像这样调用它。

public class NewAdd extends Activity {

    private MahaleDialog mDialog;

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.newadd);
        mDialog = new MahaleDialog(NewAdd.this);
    }

    @Override
    protected void onStart() {
        super.onStart();
        mDialog.onStart();
    }

    @Override
    public void onBackPressed() {
        mDialog.onBackPressed();
    }

    public class MahaleDialog implements View.OnClickListener {
        NewAdd act;

        MahaleDialog(final NewAdd act) {
            this.act = act;
        }

        @Override
        public void onClick(View v) {

        }

        void onStart() {
            // your code for onStart
        }

        void onBackPressed() {
            act.onBackPressed(); // work like super.onBackPressed();
        }
    }
}

答案 1 :(得分:0)

在您的MahaleDialog中:

((NewAdd)act).the_method_you_want();

答案 2 :(得分:0)

您可以在class类中的那些事件上调用Activity的实例。

例如:假设您在活动的onCreate中初始化了您的类,并且您在类中编写了相应的方法,

onStart(){
  md.yourMethod();
}

答案 3 :(得分:0)

如果该类在活动内部,则可以简单地通过Activity_name.this

来访问该活动。

答案 4 :(得分:0)

要访问您的活动方法,只需将其强制转换为要使用的类:

this.act = (YourActivityName) act;