Android обрабатывать методы деятельности в другом классе - PullRequest
0 голосов
/ 04 июля 2018

У меня есть действие, я создаю другой класс в этом упражнении:

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

В моем классе много кода, я хочу использовать в нем карту, вопрос в том, что мне нужно обращаться к методам в действии, но мне нужно обрабатывать их в этом классе.

например, я хочу обработать onStart или onBackPress в этом классе.

как я могу это сделать?

Ответы [ 5 ]

0 голосов
/ 04 июля 2018

Вы можете создать ссылку на внутренний класс и назвать его следующим образом.

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();
        }
    }
}
0 голосов
/ 04 июля 2018

Чтобы получить доступ к вашему методу активности, вам просто нужно привести его в класс, который вы хотите использовать:

this.act = (YourActivityName) act;
0 голосов
/ 04 июля 2018

Вы можете вызвать экземпляр вашего class для этих событий в классе Activity.

Например: предположим, что вы инициализируете свой класс в onCreate упражнения, и у вас есть соответствующие методы, написанные в вашем классе,

onStart(){
  md.yourMethod();
}
0 голосов
/ 04 июля 2018

, если этот класс находится внутри деятельности, вы можете получить доступ к этой деятельности просто Activity_name.this

0 голосов
/ 04 июля 2018

В вашем MahaleDialog:

((NewAdd)act).the_method_you_want();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...