我有一个活动,我在此活动中创建了另一个类:
@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。
我该怎么做?
答案 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;