①이벤트를 무명클래스로 핸들링
Button btn = (Button) findViewById(R.id.main_nextbtn);
btn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
switch (v.getId()) {
case R.id.main_nextbtn:
Toast toast = Toast.makeText(MainActivity.this, "clicked", Toast.LENGTH_SHORT);
toast.show();
System.out.println("clicked..");
break;
}
}
});
------------------------------------------------------------------------
② 하나의 메소드에서 여러 컨테이너의 이벤트를 핸들링하려고 할 때.
... implements View.OnClickListener{
protected void onCreate(Bundle savedInstanceState) {
...
Button btn = (Button) findViewById(R.id.main_nextbtn);
btn.setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.main_nextbtn:
Toast toast = Toast.makeText(MainActivity.this, "clicked", Toast.LENGTH_SHORT);
toast.show();
System.out.println("clicked..");
break;
}
}
}
! ) parameter:View의 parameter의 형식을 지키지 않으면 크래시.
! ) returnType이 void가 아닐경우 레이아웃 편집기의 onclick에 해당 메소드가 표시되지 않는다.
Button btn = (Button) findViewById(R.id.main_nextbtn);
btn.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
switch (v.getId()) {
case R.id.main_nextbtn:
Toast toast = Toast.makeText(MainActivity.this, "clicked", Toast.LENGTH_SHORT);
toast.show();
System.out.println("clicked..");
break;
}
}
});
------------------------------------------------------------------------
② 하나의 메소드에서 여러 컨테이너의 이벤트를 핸들링하려고 할 때.
... implements View.OnClickListener{
protected void onCreate(Bundle savedInstanceState) {
...
Button btn = (Button) findViewById(R.id.main_nextbtn);
btn.setOnClickListener(this);
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.main_nextbtn:
Toast toast = Toast.makeText(MainActivity.this, "clicked", Toast.LENGTH_SHORT);
toast.show();
System.out.println("clicked..");
break;
}
}
}
! ) parameter:View의 parameter의 형식을 지키지 않으면 크래시.
! ) returnType이 void가 아닐경우 레이아웃 편집기의 onclick에 해당 메소드가 표시되지 않는다.
댓글
댓글 쓰기