command 디자인 모드 의 모니터 디자인

2872 단어
우선 감청 사건 은 모 바 일 에서 터치 나 클릭 으로 나타 나 기 때문에 사건 은 보통 onTouch 에서 처리 합 니 다.
버튼 컨트롤 을 사용자 정의 합 니 다. 클릭 이벤트 가 있 습 니 다.
1、MyButton.js:
package cn.itcast.design.note1.command;


import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;


public class MyButton extends TextView {


	public MyButton(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}


	public MyButton(Context context, AttributeSet attrs) {
		super(context, attrs);
	}


	@Override
	public boolean onTouchEvent(MotionEvent event) {
		switch (event.getAction()) {
		case MotionEvent.ACTION_DOWN: //   
			break;
		case MotionEvent.ACTION_MOVE://   
			break;
		case MotionEvent.ACTION_UP://   
			//     
			if (listener != null) {
				listener.onMyClick(this);
			}
			break;
		}


		return super.onTouchEvent(event);
	}


	// ①        On  Listener
	public static interface OnMyClickListener {
		public void onMyClick(View view);
	}


	// ②     setOn  Listener
	private OnMyClickListener listener = null;


	public void setOnMyClickListener(OnMyClickListener l) {
		listener = l;
	}
	// ③      // public void onMyClick(View view);
	// ④              


}

2. 이 컨트롤 은 레이아웃 파일 에서 참조 할 수 있 습 니 다.
activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <cn.itcast.design.note1.command.MyButton
        android:id="@+id/button2"
        android:gravity="center"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:text="     " />


</LinearLayout>

3. 클릭 이벤트 가 처리 해 야 할 논 리 를 분리 하여 결합 을 해제 하 는 목적 (위임 식) 을 달성 합 니 다.
package cn.itcast.design.note1.command;


import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import cn.itcast.design.R;
import cn.itcast.design.note1.command.MyButton;
import cn.itcast.design.note1.command.MyButton.OnMyClickListener;


public class MainActivity extends Activity {


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);




		MyButton button2=(MyButton) findViewById(R.id.button2);
		button2.setClickable(true);
		button2.setOnMyClickListener(new OnMyClickListener() {
			@Override
			public void onMyClick(View view) {
				// 200        
				System.out.println("200        ");
			}
		});
	}

}

좋은 웹페이지 즐겨찾기