使用容器进行Android活动

时间:2013-02-19 20:52:08

标签: android slidingmenu

我想知道Android是否支持使用一些静态组件制作容器,并将其中的活动包含在其中 我有一个带有一些onClickListener事件的滑动菜单,我不想为每个活动设置这些事件。

4 个答案:

答案 0 :(得分:3)

如果我理解正确,您可以使用多个活动共有的功能,并且您不希望在所有活动中重复相同的代码。相反,你想在一个地方做到这一点。

实现此目的的一种方法是创建超类活动,将公共代码放在该活动中,然后使用其他活动扩展它。例如,

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 {
  /...
}

答案 1 :(得分:1)

我不确定我理解你的问题,你能否详细说明一下?甚至可能会发布您当前使用的一些示例代码。

据我所知,你应该能够通过制作自己的CustomActivity来实现你想要的东西

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

然后在您想要使用该共享片段的所有其他活动中,请执行以下操作:

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

使用extends CustomActivity代替通常的extends Activity

答案 2 :(得分: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;
    }
}

答案 3 :(得分:-1)

所有活动都需要在Manifest中注册。对于常见的事情,例如幻灯片菜单,您可以使用片段作为幻灯片菜单。