在方法中在調用其他activity類中的方法是,出現錯誤;
錯誤方法:MainActivity activity=new MainActivity();
錯誤原因:activity是不能用new來實例化的。
或者有時將Activity中方法寫成靜態的static, 去調用的,調用之后其它方法也需要改為static,造成修改太大
解決辦法:在activity類的onCreate()中 調用該類的構造方法,把context和avtivity對象傳過來。話不多說,代碼更直觀!
1.ClipBoardService.java
public class ClipBoardService { private Context contxt; private MainActivity activity; public Context getContxt() { return contxt; } public void setContxt(Context contxt) { this.contxt = (MainActivity) contxt; } public Activity getActivity() { return (MainActivity) activity; } public void setActivity(Activity activity) { this.activity = (MainActivity) activity; } public ClipBoardService(Context context, MainActivity activity) { this.setContxt(context); this.setActivity(activity); } private void getMethod(){ activity.method(); } }
2.MainActivity.java
public class MainActivity extends Activity{ private ClipBoardService clipBoard; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); clipBoard = new ClipBoardService(this,MainActivity.this); }
public void method(){
} }