描述業(yè)務(wù)場景,或者描述清楚具體步驟,這種問法是什么
兩組數(shù)據(jù),數(shù)據(jù)是什么樣的,可重復(fù),不可重復(fù),數(shù)字還是對(duì)象
A集合
B集合
操作是什么
function1: 從A中隨機(jī)取1個(gè)數(shù)據(jù) 添加該數(shù)據(jù)到B集合 ,并從1 移除
function2: 有一個(gè)key,一定可以對(duì)于B的元素,所以B是map唄?
那么A是什么 是list集合? 那從A取元素,是將key放過去還是value放過去?
你這樣問問題,誰能回答
我也遇到這個(gè)問題,醉了
FragmentPagerAdapter/FragmentStatePagerAdapter了解一下
View view= factorys.inflate(R.layout.activity_detail, null);
這個(gè) Fragment 的 View 是新創(chuàng)建的跟 Activity 中的都不是同一個(gè)對(duì)象。
簡單的說:會(huì)的
具體可以參見: https://docs.gradle.org/curre...
android os 不支持
就是低級(jí)別的系統(tǒng)中沒有BLE相關(guān)的方法給你調(diào)用
從理論上來說 除非你自己修改android的系統(tǒng),自己實(shí)現(xiàn)rom,將ble相關(guān)的代碼移植到4.2系統(tǒng)內(nèi),然后對(duì)java層提供sdk調(diào)用你封裝的ble api,這樣的技術(shù)大概類似于mipush,而且更加復(fù)雜,因?yàn)樯婕癮ndroid操作硬件,系統(tǒng)燒錄
否則無法實(shí)現(xiàn)你說的功能,如果你是想研究android系統(tǒng)的燒錄和相關(guān)代碼植入,系統(tǒng)剪裁定制,還可以考慮
如果只是為了app開發(fā),建議你不要考慮BLE兼容4.2的問題,在app層面不可能實(shí)現(xiàn)
是不是設(shè)置了快捷鍵是雙引號(hào)
實(shí)際上通常是你所說的做法,圖片一般是上傳到你們自己的CDN上面,因?yàn)閳D片加載畢竟比文本更加耗時(shí),為了提升用戶體驗(yàn),分區(qū)域存儲(chǔ)相當(dāng)有必要。當(dāng)然這里面我認(rèn)為 還需要考慮兩點(diǎn)內(nèi)容。
問題已經(jīng)解決了
這個(gè)問題的 關(guān)鍵點(diǎn) 是 setSelection() 方法的執(zhí)行時(shí)機(jī)
<RelativeLayout
<!-- 這兩個(gè)設(shè)置不需要了,因?yàn)榻酉聛硪诔绦蚩傇O(shè)定 -->
android:focusable="false"
android:focusableInTouchMode="true" />
<EditText />
</RelativeLayout>
public class MainActivity extends AppCompatActivity {
private boolean isFirst = true; // 是否是第一次點(diǎn)擊 EditText
private InputMethodManager mIMM; // 第一次點(diǎn)擊時(shí),軟鍵盤不自動(dòng)彈出,所以要手動(dòng)彈出
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mIMM = (InputMethodManager) (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
mEditText = findViewById(R.id.xxx);
// 關(guān)鍵部分
mEditText.setFocusable(false);
mEditText.setOnClickListener( v -> {
if(isFirst) {
mEditText.setFocusableInTouchMode(true);
mEditText.requestFocus();
mEditText.setSelection(mEditText.getText().length());
mIMM.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
isFirst = false;
}
});
}
}
1. 直接設(shè)置 setSelection()
因?yàn)橹霸O(shè)置了 android:focusabelInTouchMode="true",所以直接設(shè)置是沒有效果的,第一次點(diǎn)擊EditText區(qū)域,會(huì)自動(dòng)彈出軟鍵盤,并且光標(biāo)位置是手指點(diǎn)擊的位置
2. 自定義 EditText,重寫 onSelectionChanged(int selStart, int selEnd)方法
這個(gè)方法感知光標(biāo)位置的變化,編寫如下代碼,可控制光標(biāo)始終在結(jié)尾處:
@Override
protected void onSelectionChanged(int selStart, int selEnd) {
super.onSelectionChanged(selStart, selEnd);
if (selStart == selEnd) { // 不考慮多個(gè)文字被選中
setSelection(getText().length());
}
}
這個(gè)方法的執(zhí)行時(shí)機(jī)在自定義EditText對(duì)象初始化之前,并且在沒點(diǎn)擊之前,或者點(diǎn)擊時(shí)會(huì)多次執(zhí)行該方法,不好控制是否是第一次點(diǎn)擊。因此也沒有嘗試成功
不知道有沒有更好的解決方案?期待你的回答。
實(shí)際項(xiàng)目總可能會(huì)遇到一個(gè)頁面中有多個(gè)EditText,那么 isFirstTouch 就可能被多個(gè)EditText共用,如果有這個(gè)問題存在的話,一種解決方案是自定義EditText:
public class MyEditText extends EditText {
private boolean isFirstTouch = true;
// 構(gòu)造方法中調(diào)用 init() 方法
private void init() {
post( () -> {
setFocusable(false);
if(isFirst) {
setFocusableInTouchMode(true);
requestFocus();
setSelection(mEditText.getText().length());
inputMethodManger.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
isFirst = false;
}
});
}
}下載android platform
有兩種模式,一種是debug,一種是release
如何生成簽名
如何自動(dòng)簽名
--prod的優(yōu)化啟動(dòng)速度
1.添加Android平臺(tái)支持
在工程目錄下執(zhí)行 ionic platform add android 命令
項(xiàng)目的路徑下就會(huì)自動(dòng)生成platform文件夾,里面有一個(gè)android文件夾。
添加Android平臺(tái)支持后就可以打包apk了
在工程目錄下執(zhí)行 ionic build android 命令
會(huì)在 xxxplatformsandroidbuildoutputsapk下生成android-debug.apk
這種命令生成的apk是用于調(diào)試的。
安裝到手機(jī)
連接手機(jī)或者打開模擬器,在xxxplatformsandroidbuildoutputsapk下打開命令窗口執(zhí)行adb install android-debug.apk就能將apk安裝在手機(jī)或者模擬器上了。
2.兩種打包的版本
一種是debug調(diào)試版,一種是release發(fā)布版
打包debug調(diào)試版
在工程目錄下執(zhí)行ionic build android,生成的apk就是debug調(diào)試版本
打包release發(fā)布版
在工程目錄下執(zhí)行ionic build andorid --release,生成的apk就是release發(fā)布版本。
如果沒有配置簽名文件則默認(rèn)只生成android-release-unsigned.apk,沒有簽名的apk。release版本是必須有簽名才能在手機(jī)上運(yùn)行。
3.生成簽名文件
有兩種方式生成簽名文件
1.使用Android Studio
build.jpg
Genetate Signed APK.jpg
New Key Store.jpg
2.使用jdk的KeyTool生成簽名文件
生成簽名文件的命令:
keytool -genkey -v -keystore name.jks -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
name.jks,name可以自定義,jks是Android studio生成的簽名文件的后綴,這里默認(rèn)使用jks也可以;
alias_name是別名,也是自定義的。
生成簽名.jpg
注意注意:
問是否正確的時(shí)候要回答中文'是',一開始傻乎乎回答'yes'結(jié)果沒反應(yīng) (╯‵□′)╯︵┻━┻
4.如何打包的時(shí)候自動(dòng)簽名
在工程目錄/platforms/android目錄新建名為release-signing.properties的文件,文件內(nèi)容如下
storeFile=path to keystore
keyAlias=your key alias
storePassword=your store password
keyPassword=you key password
使用ionic build android --release編譯即可,在/platforms/android/build/outputs/apk下就會(huì)生成已簽名的安裝包android-release.apk
在windows下storeFile文件路徑應(yīng)使用Unix下的目錄分隔符/。
5.--prod的優(yōu)化打包體積
在編譯命令的最后加上--prod會(huì)讓app的啟動(dòng)速度加快。
ionic build android --release --prod
無論是debug版本還是release版本都適用。
原因有多種
暫時(shí)想到這么多
辦法肯定是有的,但是代碼你得自己寫.
你需要實(shí)現(xiàn)自定義的 RNModule 來將 JS 層的命令傳遞到 Native 層. 然后執(zhí)行命令.
這其實(shí)是 RN 的基本思路.
config 文件夾的 index.js,修改 build 配置項(xiàng):
module.exports = {
dev: {
// ...
assetsSubDirectory: 'static',
assetsPublicPath: '/',
// ...
},
build: {
// ...
assetsRoot: path.resolve(__dirname, '../../dist'),
assetsSubDirectory: 'static',
assetsPublicPath: `${settings.cdn}/`,
// ...
}
}你把你自己自定義組件里面按鈕的事件拋出去給activity界面處理不就行了。
已經(jīng)自行解決,原來是打包后的應(yīng)用程序的獲取后端數(shù)據(jù)的接口地址應(yīng)該改成局域網(wǎng)的ip
一般來說 Android Studio 會(huì)自動(dòng)安裝 Android SDK,如果出現(xiàn)如題這種情況,很有可能是代理設(shè)置的問題,改成全局代理或者使用 VPN,這時(shí)候應(yīng)該就可以正常下載 SDK 了。
我推薦你用RN,只要會(huì)react就能很快上手,而且組件庫很豐富,開源項(xiàng)目也多可以參考。最重要的是性能相比inoic這類混合應(yīng)用要好很多。
這應(yīng)該是標(biāo)準(zhǔn)答案了,但是有意義嗎?如果我說RN不好,你就不去嘗試嗎?
他們?nèi)吒饔袃?yōu)缺點(diǎn),重要的是哪個(gè)適合你,而不應(yīng)該取決于是否有”坑“。
vue的人覺得weex坑很多react的人覺得RN坑多但本質(zhì)上,它們都只是工具,工具就是拿來用的,你不試試,怎么知道哪個(gè)順手?
xml是item的布局吧?
是不是EasySwipeMenuLayout的onclick或者ontouch方法,return true,把點(diǎn)擊事件攔截了?
這和listview的加載模式是一樣的,設(shè)置了變動(dòng)的一定記得給未設(shè)置的也設(shè)置數(shù)據(jù),比如:你設(shè)置第一條未藍(lán)色,那么其他要設(shè)置黑色,不要因?yàn)槟J(rèn)是黑色就不設(shè)置了。
listview和RecyclerView都是可見刷新的模式,比如這個(gè)文章的說法:
https://www.2cto.com/kf/20160...
官方在早期listview的時(shí)代有做過相關(guān)分享,可能是2014年的時(shí)候,不可考,大致清楚為什么,然后解決的方式就比較簡單了,總得來說就是對(duì)所有的項(xiàng)目都要記錄數(shù)據(jù)用以對(duì)展示進(jìn)行判斷。如果不記錄就會(huì)出現(xiàn)錯(cuò)亂,因?yàn)槭遣季謴?fù)用的方式。
開發(fā) android 務(wù)必使用 Android Studio
這是官方唯一支持的IDE
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。