2013-02-19 3 views
0

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

+0

Гм, я не уверен, от этого вопроса, что вы понимаете, что такая деятельность. –

ответ

0

Вот как я решил эту проблему:

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

public abstract class main extends activity(){ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(getLayoutResourceId()); 
     // Your common code here 
    } 
    protected abstract int getLayoutResourceId(); 
} 

Тогда все что вам нужно затратить этот класс в своей деятельности:

public class HelloActivity extends main{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     setContentView(R.layout.activity_hello); 
     super.onCreate(savedInstanceState); 
     //make sure to put setcontentview before super.oncreate 
    } 
    @Override 
    protected int getLayoutResourceId() { 
     return R.layout.activity_hello; 
    } 
} 
1

Я не совсем уверен, что я понимаю ваш вопрос, можете ли вы, возможно, разработать еще несколько? возможно, даже отправьте пример кода, который вы используете в настоящее время.

Из того, что я могу сказать, вы должны быть в состоянии добиться того, что вы хотите, сделать свой собственный CustomActivity

public class CustomActivity extends Activity { 
    //put your slidingmenu stuff here 
} 

Тогда внутри всех других мероприятий, где вы хотите использовать этот общий кусок сделать это следующим образом:

public class AnotherActivity extends CustomActivity { 
    //... 
} 

с extends CustomActivity вместо обычных extends Activity

+0

Я уже пробовал, но это не дает никакого эффекта. Мое скользящее меню - это библиотека, которую я создаю в своей основной деятельности. – OWZY

+0

Вам нужно будет опубликовать свой код. Мне трудно понять, что вы пытаетесь выполнить. – FoamyGuy

+0

Я нашел метод, который позволяет присоединить меню, созданное в базовой активности в текущей используемой активности (attachToActivity). спасибо за помощь – OWZY

-1

Все мероприятия должны быть зарегистрированы в Manife ул. Для общих вещей, например. В меню слайдов вы можете использовать Фрагмент для меню слайдов.

2

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

Одним из способов достижения этой цели является создание активности суперкласса, размещение вашего общего кода в этом действии, а затем расширение его другими действиями. Например,

public class BaseActivity extends Activity implements OnClickListener { 
private Button button; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    button = (Button) findViewById(R.id.my_button); 
    button.setOnClickListener(this); 
} 

    ... 

@Override 
public void onClick(View view) { 
    int id = view.getId(); 
    switch(id) { 
    case R.id.my_button: 
    // perform action 
    break; 
    } 
} 

}

Затем продлить его как

public class Activity1 extends BaseActivity { 
    /... 
} 

public class Activity2 extends BaseActivity { 
    /... 
} 

public class Activity3 extends BaseActivity { 
    /... 
} 
+0

Это не дает никакого эффекта. Я создал экземпляр моего меню в BaseActivity, но он не переключается в HomeActivity (расширяет BaseActivity). – OWZY

+0

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

+0

Теперь это okey, мне пришлось прикрепить меню к активности. Спасибо за вашу помощь – OWZY

Смежные вопросы