Part 1:Useful Eclipse Templates for Android Development
Weak Reference for Views in Activity.
Inside onCreate of each Android Activity we used to setContentView with layout xml. Then to access each view from the activity we use:
View view = findViewById(R.id..........);
to avoid calling findViewById multiple time, call this only in onCreate and keep this view as member variable inside activity.
View mView
.....
mView = findViewById(R.id..........);
Then, question is why we need to overload the onCreate method, we call findViewById only when needed and keep as member variable. So introduce following get method.
View getView(){
if(mView==null){
mView = findViewById(R.id..........);
}
return mView;
}
But in some cases, to avoid memory leakage issues, we need to remove all view from content view and need to null all these references in activity. But rather find each reference and assign to null, if we make a weak reference then it should all clear as we remove view from activity. For Example:
private WeakReference mView;
public View getView() {
if(!(mView!=null && mView.get()!=null)){
mView = new WeakReference((View) findViewById(R.id.....));
}
return mFrameAddStyleView.get();
}
Now, Let see how to write a Eclipse template to auto generate this:
Eclipse - > Windows -> Preferences -> Java -> Editor -> Templates -> New ...
Name:- wfind
Pattern:-
private WeakReference<${type}> m${new_name};
public ${type} get${new_name}() {
if(!(m${new_name}!=null && m${new_name}.get()!=null)){
m${new_name} = new WeakReference<${type}>((${type}) findViewById(R.id.${cursor}));
}
return m${new_name}.get();}
Now go to your activity class and type wfind and press Ctrl+Space you will get what you want.
Weak Reference for Views in Activity.
Inside onCreate of each Android Activity we used to setContentView with layout xml. Then to access each view from the activity we use:
View view = findViewById(R.id..........);
to avoid calling findViewById multiple time, call this only in onCreate and keep this view as member variable inside activity.
View mView
.....
mView = findViewById(R.id..........);
Then, question is why we need to overload the onCreate method, we call findViewById only when needed and keep as member variable. So introduce following get method.
View getView(){
if(mView==null){
mView = findViewById(R.id..........);
}
return mView;
}
But in some cases, to avoid memory leakage issues, we need to remove all view from content view and need to null all these references in activity. But rather find each reference and assign to null, if we make a weak reference then it should all clear as we remove view from activity. For Example:
private WeakReference
public View getView() {
if(!(mView!=null && mView.get()!=null)){
mView = new WeakReference
}
return mFrameAddStyleView.get();
}
Now, Let see how to write a Eclipse template to auto generate this:
Eclipse - > Windows -> Preferences -> Java -> Editor -> Templates -> New ...
Name:- wfind
Pattern:-
private WeakReference<${type}> m${new_name};
public ${type} get${new_name}() {
if(!(m${new_name}!=null && m${new_name}.get()!=null)){
m${new_name} = new WeakReference<${type}>((${type}) findViewById(R.id.${cursor}));
}
return m${new_name}.get();}
Now go to your activity class and type wfind and press Ctrl+Space you will get what you want.