command 디자인 모드 의 모니터 디자인
버튼 컨트롤 을 사용자 정의 합 니 다. 클릭 이벤트 가 있 습 니 다.
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 ");
}
});
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.