Button的作用就是按下,当然当按下后就会产生“按下”的事件。 其中按下的事件也分为两种。 一种是OnClick事件, 另一种是OnLongClick事件。
先贴出我的Activity的代码。如下:
代码语言:javascript复制public class ButtonActivity extends Activity {
private static TextView tv1;
private static TextView tv2;
private static Button bt1;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_button);
tv1 = (TextView)findViewById(R.id.textView1);
tv2 = (TextView)findViewById(R.id.textView2);
bt1 = (Button)findViewById(R.id.button1);
bt1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
tv1.setText("OnClick");
}
});
bt1.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View arg0) {
// TODO Auto-generated method stub
tv2.setText("OnLongClick");
return false;
}
});
}
}
其中布局文件就不贴出了。 布局文件中有2个TextView 和 1个button。 当长按或者直接按下时分别textview不同的显示。
首先: 先截图出刚运行起来的界面如下:
当按下一段时间, 没有松开的效果图如下:
当松开后的效果如下:
ok。 演示完成。 来一个小结。
1: 当按下一段时间并且没有松开,会触发OnLongClick事件。
2:当按下后松开之后就会触发OnClikc事件。(也就是说OnClick事件是当按下并且抬起之后才会触发的事件)
如果: 当OnLongClick事件返回的是true时会有怎么样的效果呢?
代码语言:javascript复制 bt1.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View arg0) {
// TODO Auto-generated method stub
tv2.setText("OnLongClick");
return true;
}
});
这个问题留给大家动手实践哦!
好, 本小结就到这里。