91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

歸納總結Android的點擊事件

發布時間:2020-08-06 14:20:17 來源:網絡 閱讀:1980 作者:qq5a04ff06b426e 欄目:移動開發

地址

http://blog.csdn.net/xiangyong_1521/article/details/78489254

目錄

  • 常見按鈕點擊

  • 點擊的其他方式

  • 對話框按鈕點擊

  • 列表點擊

  • 物理鍵點擊




1. 常見按鈕點擊

a、單擊事件,主要用于ButtonImageButton控件,布局視圖與TextViewImageView控件用的也比較多。相關類名與方法說明如下: 監聽器類名 : View.OnClickListener

設置監聽器的方法 : setOnClickListener

監聽器需要重寫的點擊方法 : onClick

findViewById(R.id.button).setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View v) {                           }        });

b、長按事件,較少使用,一般長按要么彈出提示對話框,要么彈出上下文菜單(上下文菜單只需注冊就好,無需額外處理長按事件)。相關類名與方法說明如下: 監聽器類名: View.OnLongClickListener

設置監聽器的方法 : setOnLongClickListener

監聽器需要重寫的點擊方法 : onLongClick

findViewById(R.id.button).setOnLongClickListener(new OnLongClickListener() {            @Override            public boolean onLongClick(View v) {                return false;            }        });

c、組合按鈕點擊事件,一般用于CheckBox控件。相關類名與方法說明如下: 監聽器類名 : CompoundButton.OnCheckedChangeListener

設置監聽器的方法 : setOnCheckedChangeListener

監聽器需要重寫的點擊方法 : onCheckedChanged

findViewById(R.id.button).setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {            }        });

d、單選按鈕點擊事件,只能用于RadioGroup視圖。相關類名與方法說明如下: 監聽器類名 : RadioGroup.OnCheckedChangeListener

設置監聽器的方法 : setOnCheckedChangeListener

監聽器需要重寫的點擊方法 : onCheckedChanged

findViewById(R.id.button).setOnCheckedChangeListener(new OnCheckedChangeListener() {        @Override        public void onCheckedChanged(RadioGroup arg0, int checkedId) {            switch (checkedId) {                        }        }    };

2. 點擊的其他方式

onClick用于響應從按下到松開間隔時間較短的點擊事件,onLongClick用于響應從按下到松開間隔時間較長的點擊事件,間隔時間閾值大約在1-2秒之間。但不管是onClick還是onLongClick都要在松開后,才會調用相應的單擊或者長按函數,而且不知道按下的是什么鍵,所以有時不能滿足比較精細的事件要求。為此,View類還提供了幾個與點擊有關的監聽器,用來處理一些特殊場景。舉例如下:

a、觸摸事件,從用戶按下屏幕就開始響應,直到用戶松開才終止響應,期間可處理按下、移動、松開等動作。相關類名與方法說明如下: 監聽器類名 : OnTouchListener

設置監聽器的方法 : setOnTouchListener

監聽器需要重寫的點擊方法 : onTouch

findViewById(R.id.button).setOnTouchListener(new OnTouchListener() {            @Override            public boolean onTouch(View v, MotionEvent event) {                switch (event.getAction()) {                case MotionEvent.ACTION_DOWN://按下                    break;                case MotionEvent.ACTION_UP://抬起                    break;                case MotionEvent.ACTION_MOVE://表示按下后移動了手指                    break;                }                return false;            }        });

b、鍵盤事件,該事件比觸摸事件更進一步,不但在觸摸時全程響應,還能獲知當前按下的是哪個鍵。相關類名與方法說明如下: 監聽器類名 : OnKeyListener

設置監聽器的方法 : setOnKeyListener

監聽器需要重寫的點擊方法 : onKey

findViewById(R.id.button).setOnKeyListener(new OnKeyListener() {            @Override            public boolean onKey(View v, int keyCode, KeyEvent event) {                switch (event.getAction()) {                     case KeyEvent.ACTION_UP:             //鍵盤松開                         Toast.makeText(SQLiteActivity.this, ""+keyCode, 0).show();                       break;                   case KeyEvent.ACTION_DOWN:          //鍵盤按下                         break;                  }                return false;            }        });

c、焦點變化事件,主要用于EditText控件。比如屏幕上有多個EditText輸入框,當用戶點擊某個輸入框,則該輸入框獲得焦點;然后用戶再點擊另一個輸入框,則原輸入框失去焦點,當前輸入框獲得焦點;所有獲得焦點與失去焦點的控件,都有條件響應焦點變化事件。相關類名與方法說明如下: 監聽器類名 : OnFocusChangeListener

設置監聽器的方法 : setOnFocusChangeListener

監聽器需要重寫的點擊方法 : onFocusChange

findViewById(R.id.button1).setOnFocusChangeListener(new OnFocusChangeListener() {            @Override            public void onFocusChange(View v, boolean hasFocus) {                 Toast.makeText(SQLiteActivity.this, "1:"+hasFocus, 0).show();            }        });        findViewById(R.id.button2).setOnFocusChangeListener(new OnFocusChangeListener() {            @Override            public void onFocusChange(View v, boolean hasFocus) {                 Toast.makeText(SQLiteActivity.this, "2:"+hasFocus, 0).show();            }        });

3. 對話框按鈕點擊

對話框的點擊事件其實就是按鈕點擊,只是對話框上有多個按鈕,所以需要分別注冊監聽器,分別響應點擊事件。相關類名與方法說明如下: 監聽器類名 : DialogInterface.OnClickListener設置監聽器的方法包含了如下三個按鈕 : setPositiveButton : 設置肯定按鈕的監聽器,一般是確認

setNegativeButton : 設置否定按鈕的監聽器,一般是取消

setNeutralButton : 設置中性按鈕的監聽器,這個很少用 監聽器需要重寫的點擊方法 : onClick

protected void dialog() {        AlertDialog.Builder builder = new Builder(getActivity());        builder.setMessage(getResources().getString(R.string.factory_reset_dlg_text));//樣式        builder.setPositiveButton(getResources().getString(R.string.other_ok), new DialogInterface.OnClickListener() {//確定            @Override            public void onClick(DialogInterface dialog, int which) {                dialog.dismiss();                resetFactory();            }        });        builder.setNegativeButton(getResources().getString(R.string.other_cancel), new DialogInterface.OnClickListener() {//取消            @Override            public void onClick(DialogInterface dialog, int which) {                dialog.dismiss();            }        });        builder.create().show();    }

4. 列表點擊

 a、單項選擇事件,一般用于Spinner控件,在某個列表元素被選中時觸發。相關類名與方法說明如下: 監聽器類名 : AdapterView.OnItemSelectedListener

設置監聽器的方法 : setOnItemSelectedListener

監聽器需要重寫的點擊方法 : 

onItemSelected : 列表項被選中時調用

onNothingSelected : 沒有選擇任何項時調用,該方法一般為空

 mySpinner.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {//選擇item的選擇點擊監聽事件                      public void onItemSelected(AdapterView<?> arg0, View arg1,                              int arg2, long arg3) {                          // TODO Auto-generated method stub                          // 將所選mySpinner 的值帶入myTextView 中                           myTextView.setText("您選擇的是:" + adapter.getItem(arg2));//文本說明                      }                      public void onNothingSelected(AdapterView<?> arg0) {                          // TODO Auto-generated method stub                          myTextView.setText("Nothing");                      }                  });

b、單項點擊事件,一般用于ListView控件和GridView控件,在某個元素被點擊時觸發。相關類名與方法說明如下:

 監聽器類名 : AdapterView.OnItemClickListener

設置監聽器的方法 : setOnItemClickListener

監聽器需要重寫的點擊方法 : onItemClick

 /**     * 響應ListView中item的點擊事件     */     @Override    public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {         Toast.makeText(this, "listview的item被點擊了!,點擊的位置是-->" + position,                Toast.LENGTH_SHORT).show();    }

c、單項長按事件,一般用于ListView控件和GridView控件,在某個元素被長按時觸發。相關類名與方法說明如下:

 監聽器類名 : AdapterView.OnItemLongClickListener

設置監聽器的方法 : setOnItemLongClickListener

監聽器需要重寫的點擊方法 : onItemLongClick

 /**     * 響應ListView中item的點擊事件     */     @Override    public void onItemLongClick(AdapterView<?> arg0, View v, int position, long id) {         Toast.makeText(this, "listview的item被點擊了!,點擊的位置是-->" + position,                Toast.LENGTH_SHORT).show();    }

4.2 導航項點擊a、下拉導航項的點擊事件,導航模式需設置為ActionBar.NAVIGATIONMODELIST,展現形式上很像Spinner,用于響應具體下拉項的選中事件。相關類名與方法說明如下: 監聽器類名 : ActionBar.OnNavigationListener

設置監聽器的方法 : setListNavigationCallbacks

監聽器需要重寫的點擊方法 : onNavigationItemSelected

navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {      @Override      public boolean onNavigationItemSelected(MenuItem item) {          //在這里處理item的點擊事件          return true;      }  });

b、標簽導航項的點擊事件,導航模式需設置為ActionBar.NAVIGATIONMODETABS,用于響應具體標簽頁的選中事件。相關類名與方法說明如下: 監聽器類名 : ActionBar.TabListener

設置監聽器的方法 : setTabListener

監聽器需要重寫的點擊方法 : onTabSelected : 在標簽頁選中時調用

onTabUnselected : 在標簽頁取消選中時調用,該方法一般為空onTabReselected : 在標簽頁在選中狀態下再次選中時調用,該方法一般為空

public class TabListener<T extends Fragment> implements ActionBar.TabListener {      private Fragment mFragment;      private final Activity mActivity;      private final String mTag;      private final Class<T> mClass;      public TabListener(Activity activity, String tag, Class<T> clz) {          mActivity = activity;          mTag = tag;          mClass = clz;      }      public void onTabSelected(Tab tab, FragmentTransaction ft) {          if (mFragment == null) {              mFragment = Fragment.instantiate(mActivity, mClass.getName());              ft.add(android.R.id.content, mFragment, mTag);          } else {              ft.attach(mFragment);          }      }      public void onTabUnselected(Tab tab, FragmentTransaction ft) {          if (mFragment != null) {              ft.detach(mFragment);          }      }      public void onTabReselected(Tab tab, FragmentTransaction ft) {      }  }

4.3 菜單項點擊菜單的點擊事件適用于選項菜單和上下文菜單的單項點擊,菜單無需注冊監聽器即可響應點擊事件,相關的點擊處理方法說明如下:onMenuItemSelected : 在菜單項選擇時調用,其內部做分支判斷,如果是選項菜單,則調用onOptionsItemSelected

如果是上下文菜單,則調用onContextItemSelectedonOptionsItemSelected : 在選項菜單的菜單項選中時調用。onContextItemSelected : 在上下文菜單的菜單項選中時調用。

@Override  public boolean onMenuItemSelected(int featureId, MenuItem item) {      return false;  }

5. 物理按鍵點擊

android手機除了位于中間的Home主頁鍵,還有左邊的菜單鍵,右邊的返回鍵按下菜單鍵,屏幕上彈出該頁的Menu菜單(如果有定義的話)。按下主頁鍵,屏幕回到桌面;長按主頁鍵,屏幕顯示進程列表。按下返回鍵,屏幕返回當前APP的上一頁面;如果當前APP已處于棧頂的主頁,則屏幕退出APP頁面并返回到桌面。

退出常見的提示方式不外乎兩種: 1、APP彈出一個確認對話框,讓用戶選擇是否退出APP,點擊“是”按鈕則退出,點擊“否”按鈕則取消; 2、APP彈出Toast提示“再按一次返回鍵退出”,如果用戶三秒之內接著又按了一次返回鍵,那么APP再退出;

private long mTickForShow;    @Override    public void onBackPressed() {        if (SystemClock.uptimeMillis()-mTickForShow<3000) {            finish();        }else{            Toast.makeText(getApplication(), ""+getString(R.string.goout).toString(), 0).show();        }        mTickForShow=SystemClock.uptimeMillis();        }

筆記30 | 數據存儲之SQLite的介紹及使用

筆記29 | 整理Java的容器類

筆記28 | 學習一個簡單好用的下拉刷新、上拉加載控件

筆記27 | WindowManager實現懸浮窗口總結

筆記26 | 總結Android的獲取系統時間的幾種方法



結束



歸納總結Android的點擊事件


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

明星| 肥东县| 金门县| 珲春市| 宣威市| 牟定县| 陇川县| 隆回县| 如东县| 乌鲁木齐市| 得荣县| 黑河市| 双流县| 余姚市| 广东省| 彩票| 濉溪县| 大竹县| 宜兰市| 柘荣县| 会同县| 麦盖提县| 阿鲁科尔沁旗| 南丹县| 香格里拉县| 西吉县| 博湖县| 兰坪| 舟曲县| 沾益县| 得荣县| 昭平县| 盐城市| 连南| 南江县| 东乡县| 溧水县| 江达县| 曲靖市| 胶南市| 遂溪县|