안드로이드를 위한 사용자 정의 BaseActivity

4406 단어
여러분은 안드로이드 앱을 개발하는 과정에서 많은 중복된 작업을 겪었을 거라고 믿습니다. 중복된 코드가 쓰여 있고 때로는 레이아웃 파일도 마찬가지입니다. 중복된 노동이 필요합니다. 그러면 우리 프로그램에 있어서는 틀림없이 매우 힘들고 번거로운 일입니다. 그래서 우리가 코드를 쓸 때 더 적은 코드를 쓰도록 고려해야 하는지 프로그래머는 게으름을 피우는 것을 배워야 합니다. 그렇지 않으면......
응용 프로그램을 개발할 때 우리의 디자인은 사실 전체적인 양식이 통일된 것이다. 그러면 우리는 공용 코드를 쓸 수 있다. 이렇게 하면 프로그램에 있어 뒤의 유지보수에 편리하고 쓸데없는 말도 많이 하지 않는다. 여러분도 틀림없이 아실 것이다. 오늘 제가 여러분에게 공유한 것은 바로 자신만의 BaseActivity를 맞춤형으로 제작하는 것이다. 이 BaseActivity는 주로 공용 코드를 봉인했다.예를 들어 우리가 개발하는 과정에서 위의 제목과 단추가 반드시 있어야 하기 때문에 우리는 이 BaseActivity에 공용된 것을 모두 쓸 수 있다. 다른 기능의Activity는 이후에 이BaseActivity를 계승할 수 있다.
선상 효과도
효과도를 보았는데, 여러분은 깨우침을 주었거나 이해를 하셨나요?이제 BaseActivity의 핵심 코드를 넣겠습니다.
/**
 *    Activity        
 * 
 * @author coder
 * 
 */
public class BaseActivity extends Activity {

	private View titleView;
	private TextView tv_title;
	private Button btn_left, btn_right;

	private LinearLayout ly_content;
	//        
	private View contentView;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);

		setContentView(R.layout.common_title);
		titleView = findViewById(R.id.titleView);
		tv_title = (TextView) titleView.findViewById(R.id.tv_title);
		btn_left = (Button) titleView.findViewById(R.id.btn_left);
		btn_right = (Button) titleView.findViewById(R.id.btn_right);

		ly_content = (LinearLayout) findViewById(R.id.ly_content);
	}

	/***
	 *       
	 * 
	 * @param resId
	 *                ID
	 */
	public void setContentLayout(int resId) {

		LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		contentView = inflater.inflate(resId, null);
		LayoutParams layoutParams = new LayoutParams(LayoutParams.FILL_PARENT,
				LayoutParams.FILL_PARENT);
		contentView.setLayoutParams(layoutParams);
		contentView.setBackgroundDrawable(null);
		if (null != ly_content) {
			ly_content.addView(contentView);
		}

	}

	/***
	 *       
	 * 
	 * @param view
	 *            View  
	 */
	public void setContentLayout(View view) {
		if (null != ly_content) {
			ly_content.addView(view);
		}
	}

	/**
	 *      View
	 * 
	 * @return
	 */
	public View getLyContentView() {

		return contentView;
	}

	/**
	 *        
	 * 
	 * @return
	 */
	public Button getbtn_left() {
		return btn_left;
	}

	/**
	 *        
	 * 
	 * @return
	 */
	public Button getbtn_right() {
		return btn_right;
	}

	/**
	 *     
	 * 
	 * @param title
	 */
	public void setTitle(String title) {

		if (null != tv_title) {
			tv_title.setText(title);
		}

	}

	/**
	 *     
	 * 
	 * @param resId
	 */
	public void setTitle(int resId) {
		tv_title.setText(getString(resId));
	}

	/**
	 *            
	 * 
	 * @param resId
	 */
	public void setbtn_leftRes(int resId) {
		if (null != btn_left) {
			btn_left.setBackgroundResource(resId);
		}

	}

	/**
	 *            
	 * 
	 * @param bm
	 */
	public void setbtn_leftRes(Drawable drawable) {
		if (null != btn_left) {
			btn_left.setBackgroundDrawable(drawable);
		}

	}

	/**
	 *            
	 * 
	 * @param resId
	 */
	public void setbtn_rightRes(int resId) {
		if (null != btn_right) {
			btn_right.setBackgroundResource(resId);
		}
	}

	/**
	 *            
	 * 
	 * @param drawable
	 */
	public void setbtn_rightRes(Drawable drawable) {
		if (null != btn_right) {
			btn_right.setBackgroundDrawable(drawable);
		}
	}

	/**
	 *         
	 */
	public void hideTitleView() {

		if (null != titleView) {
			titleView.setVisibility(View.GONE);
		}
	}

	/**
	 *        
	 */
	public void hidebtn_left() {

		if (null != btn_left) {
			btn_left.setVisibility(View.GONE);
		}

	}

	/***
	 *        
	 */
	public void hidebtn_right() {
		if (null != btn_right) {
			btn_right.setVisibility(View.GONE);
		}

	}

	public BaseActivity() {

	}

}

다음은 그 중의 한 가지 용법을 제시하면 된다.
public class TwoBtnActivity extends BaseActivity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);

		setContentLayout(R.layout.two);

		//    
		setTitle("    ");



		//             
		getbtn_left().setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				onBackPressed();

			}
		});

	}

}

자, 큰일 났습니다. 이 만능 BaseActivity는 정말 유용하지 않습니까? 이런 작은 공유 하나가 여러분께 도움이 되었으면 좋겠습니다.
인용을 옮겨 싣으려면 출처를 밝혀 주십시오.http://blog.csdn.net/jiahui524

좋은 웹페이지 즐겨찾기