標籤:android 事件
為每個條目添加點擊事件監聽器
gv_main.setOnItemClickListener(this);
需要當前Activity實現OnItemClickListener介面,同時實現public void onItemClick(AdapterView<?> parent, View view, int position,long id)方法
/** * 當gridview的條目被點擊的時候對應的回調 * parent : gridView * view : 當前被點擊條目的 LinearLayout * position : 點擊條目對應的位置 * id : 代表的行號 */ @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.i(TAG, "點擊的位置" + position); switch(position){ case 0 : Log.i(TAG, "進入手機防盜"); break; } }
設定長按“手機防盜”時,彈出編輯視窗(知識點:SharedPreferences)
gv_main.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, final View view, int position, long id) { if(position == 0){ Builder builder = new Builder(MainActivity.this); builder.setTitle("設定"); builder.setMessage("請輸入要更改的內容"); final EditText et = new EditText(MainActivity.this); et.setHint("請輸入內容,長度在0-8之間"); builder.setView(et); builder.setPositiveButton("確定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String name = et.getText().toString();//擷取輸入 if("".equals(name)){ Toast.makeText(getApplicationContext(), "內容不可為空", Toast.LENGTH_LONG).show(); return; }else if(name.length() > 8){ Toast.makeText(getApplicationContext(), "輸入過長", Toast.LENGTH_LONG).show(); return; }else{ Editor editor = sp.edit(); editor.putString("lost_name", name); // 完成資料的提交 editor.commit(); TextView tv = (TextView) view.findViewById(R.id.tv_main_name); tv.setText(name); } } }); builder.setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); builder.create().show(); } return false; } }); }
長按後彈出介面效果及設定後的效果:
【邊做項目邊學Android】手機安全衛士05_2:程式主介面,為每個條目添加事件