一步一步学android之事件篇——长按事件

长按事件在很多地方都会用到,长按弹出窗口,长按删除等等,这些都是需要OnLongClickListener监听的,这个接口定义如下:

public static interface View.OnLongClickListener{
      public boolean onLongClick(View v);
}

下面同样用一个例子(更换桌面背景)来看看长按事件的使用,效果如下:

一步一步学android之事件篇——长按事件_第1张图片一步一步学android之事件篇——长按事件_第2张图片一步一步学android之事件篇——长按事件_第3张图片一步一步学android之事件篇——长按事件_第4张图片


main.xml:



    

    


MainActivity.java:

package com.example.onlongclicklistenerdemo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends Activity {

	private ImageView wallpaper = null;
	private TextView showInfo = null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.activity_main);
		initView();
	}
	private void initView(){
		wallpaper = (ImageView)super.findViewById(R.id.wallpaper);
		showInfo = (TextView)super.findViewById(R.id.showInfo);
		wallpaper.setOnLongClickListener(new View.OnLongClickListener() {
			
			@Override
			public boolean onLongClick(View v) {
				try {
					//清除默认的壁纸
					MainActivity.this.clearWallpaper();
					//设置ImageView中的图片为壁纸
					MainActivity.this.setWallpaper(MainActivity.this.getResources().openRawResource(R.drawable.wallpaper));
					MainActivity.this.showInfo.setText("-----设置成功-----");
				} catch (Exception e) {
					MainActivity.this.showInfo.setText("-----设置失败-----");
				}
				//默认是return false,返回true时,表示已经完整地处理了这个事件,
				//并不希望其他的回调方法再次进行处理;当返回false时,表示并没有完全处理
				//完该事件,更希望其他方法继续对其进行处理
				return true;
			}
		});
	}
}


因为更换壁纸属于手机的支持服务,所以又需要加操作权限,AndroidManifest.xml:




    

    
        
            
                

                
            
        
    



长按事件就说到这里了。。。


你可能感兴趣的:(一步一步学Android)