Android中一個類的方法調用Activity中的方法


在方法中在調用其他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(){

} }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM