这可能是一个noob问题但仍然存在。我需要我的主要活动类将使用其他类来做一些代码。此类使用来自Activity的函数,如getPackageName(),new Intent等。 所以我需要一些帮助,例如我需要通过类来设置setContentView。我该怎么做?
主要活动: package com.example.testapp;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
SetContentView cn = new SetContentView();
cn.MySetContentView(R.layout.activity_main);
}
}
setViewClass方法: package com.example.testapp;
public class SetContentView
{
void MySetContentView(int activityMain)
{
setContentView(R.layout.activity_main); //no set content view if not activity
}
}
答案 0 :(得分:0)
如果我说得对,你可以尝试扩展Activity
的根类并持有你的方法,然后在MainActivity
中扩展它:
public class Helper extends Activity {
... // your methods, e.g. MySetContentView
}
然后:
public class MainActivity extends Helper {
... // any call to methods in Helper
}
如果您有许多共享相同代码的活动,这可能很有用 - 您可以让它们都扩展相同的Helper
类,并且仍然是活动。
在你的情况下:
public class Helper extends Activity {
public void mySetContentView(int layout) {
setContentView(layout)
}
}
然后:
public class MainActivity extends Helper {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mySetContentView(R.layout.your_layout);
}
答案 1 :(得分:0)
public class MainActivity extends Activity
{
private static MainActivity instance;
public static MainActivity getInstance() {
return instance;
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
instance=this;
}
}
public class OtherClass
{
protected void someMethod() {
MainActivity ma= MainActivity.getInstance();
//use ma methods...
}
}