2017年3月30日 星期四
2017年3月28日 星期二
Android instanceof 用法
instanceof關鍵是就是用來判斷左邊的對像是否是右邊類的實例,如果是,就能處理下一步的邏輯。
在Android中,instanceof關鍵字常用來用在Fragment中調用Activity方法。比如說,你需要在Fragment中調用當前Activity中的某個方法,有的人說,那我直接重新寫一個不就是麼?那要是有特殊的方法,fragment不支持呢?這時候就用到了instanceof
- if( getActivity() instanceof IndexActivity)
- ((IndexActivity) getActivity()).showccaidan();
自定義的Adapter中也是可以用到的:
- if(context instanceof CommodityWarningActivity){
- holder.entName_ll.setVisibility(View.VISIBLE);
- holder.entName.setText(list.get(arg0).getStrCorporationName());
- }else{
- holder.entName_ll.setVisibility(View.GONE);
- }
context這個做android都應該知道,context從字面意思是上下文,或者叫做場景,也就是用戶與操作系統操作的一個過程。(不是特麼了解context可以先去看看資料)。所以說如果有context地方需要的話都可以使用instanceof關鍵字。
Android Fragment生命週期
- onAttach方法
當Fragment被加到某個Activity畫面中時,會自動呼叫此方法。
- onCreate方法
Fragment被建立時會自動呼叫此方法,可加入初始化元件或資料的程式碼。
- onCreateView方法
將在畫面中第一次顯示Fragment時會自動呼叫此方法,必須回傳Fragment畫面的View元件,設計時,請使用方法中的LayoutInflater物件,在此方法中產生畫面元件並回傳。
- onActivityCreated方法
當加入本Fragment的Activity被建立時,該Activity的onCreate方法執行完成後,會自動執行此方法。執行完此方法後,Fragment才出現在畫面上。
- onStart方法
當Fragment出現在畫面中時先執行此方法。
- onResume方法
執行完onStart方法後,再自動執行本方法。完成後即在畫面中與使用者互動。
當使用者按下返回鍵,或是程式中將Fragment自某個Activity中移除時,會自動執行以下方法:
- onPause方法
進入暫停前第一個執行的方法。
- onStop方法
執行完onPause方法後,自動執行本方法。
- onDestroyView方法
此時Fragment已不在畫面中,呼叫此方法。
- onDestroy方法
當Fragment要被清除之前,會執行此方法。
- onDetach方法
與當初被加入的Activity卸載時,會自動執行此方法。
2017年3月16日 星期四
Android EditText:修改虛擬鍵盤的Enter鍵
- <EditText
- android:id="@+id/edit_text"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:imeOptions="actionDone"
- android:singleLine="true"
- />
actionUnspecified 未指定
actionNone 無動作
actionGo 前往
actionSearch 搜尋
actionSend 發送
actionNext 下一個
actionDone 完成
將EditText改為單行輸入
否則仍然會是換行鍵
在Activity為EditText加入OnEditorActionListener
- editText.setOnEditorActionListener(new OnEditorActionListener() {
- @Override
- public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
- //按下完成鍵要執行的動作
- return false;
- }
2017年3月13日 星期一
2017年3月9日 星期四
2017年3月7日 星期二
2017年3月3日 星期五
Android 7 (API 级别 24) (设置的铃声模式为静音)
notification
首先检查你是否有此权限。如果你不这样做,请打开
settings
请勿打扰访问您的应用程序︰NotificationManager notificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N
&& !notificationManager.isNotificationPolicyAccessGranted()) {
Intent intent = new Intent(
android.provider.Settings
.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
startActivity(intent);
}
当您运行 startActivity(),
Android
打开请勿打扰访问 settings
为您的应用程序。
什么把我弄糊涂,此权限请求方式是完全不同于其他权限。
只供参考,这里是请求权限 READ_CONTACTS 方式︰
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
&& ActivityCompat.checkSelfPermission(activity,
Manifest.permission.READ_CONTACTS)
== PackageManager.PERMISSION_DENIED) {
ActivityCompat.requestPermissions(activity,
new String[]{ Manifest.permission.READ_CONTACTS },
REQUEST_CODE_READ_CONTACTS);
}
Android NotificationListenerService 監聽通知欄消息
訂閱:
文章 (Atom)