2015-09-07 69 views
-8

我想從我的公共類saveData擴展AsyncTask獲取響應。 我添加了一個公共界面,但Android Studio爲我在該活動的onCreate上的@Overide給了我一個錯誤。@Override添加公共接口後出現錯誤OnTaskCompleted

public class almostFinish extends Activity implements OnTaskCompleted{ 

    @Override // here I get an Error 
    protected void onCreate(Bundle savedInstanceState) {} 

    @Override 
    public void onTaskCompleted(boolean result) { 
    //ToDo 
    } 
} 

我的界面。

public interface OnTaskCompleted { 
    void onTaskCompleted(boolean isSuccess); 
} 

我的AsyncTask類

public class saveData extends AsyncTask<List<String>, Void, Void> { 
    private OnTaskCompleted listener; 
    boolean myflag = false; 

    @Override 
    public void onPreExecute() {} 

    @Override 
    protected Void doInBackground(List<String>... params) { } 

    @Override 
    public void onPostExecute(Void result) { 
     // TODO Auto-generated method stub 
     super.onPostExecute(result);   
     listener.onTaskCompleted(myflag);  
    } 
} 

感謝您的幫助。

我剛剛在編輯器中出現錯誤:「註釋在這裏是不允許的」 如果我刪除了@Override,那麼我得到一個錯誤,告訴我添加@Override。

+2

顯示什麼錯誤? *總是*指定確切的錯誤,而不是僅僅說出「錯誤」。 –

+0

他在評論中提到說//我在@Override上遇到錯誤。 –

+1

@KarthikR:說*哪裏*有錯誤 - 它不顯示*錯誤是什麼。 (我懷疑如果OP已經包含了這個錯誤,它會明顯的表明它與可訪問性無關,例如...) –

回答

1
  1. 根據此代碼,您將獲得空指針異常。因爲你沒有在代碼中分配監聽器。

    public class saveData extends AsyncTask < List <String> , Void, Void > { 
        private OnTaskCompleted listener; 
        boolean myflag = false; 
    
        @Override 
        public void onPreExecute() {} 
    
        @Override 
        protected Void doInBackground(List <String> ...params) {} 
    
        @Override 
        public void onPostExecute(Void result) { 
         super.onPostExecute(result); 
         onTaskCompleted(myflag); 
        } 
    }