Android應(yīng)用啟動(dòng)時(shí),焦點(diǎn)直接在EditText上,輸入法直接打開,影響界面美觀。
導(dǎo)致進(jìn)入畫面入就打開輸入法,影響界面美觀。
默認(rèn)焦點(diǎn)的順序是:從上倒下 從左到右第一個(gè)可以輸入的控件作為焦點(diǎn) 可以使用:
btSearch.setFocusable(true);
btSearch.requestFocus();
btSearch.setFocusableInTouchMode(true);
也可以:
在EditText前面放置一個(gè)看不到的LinearLayout,讓他率先獲取焦點(diǎn):
<LinearLayout android:focusable="true" android:focusableInTouchMode="true" android:layout_width="0px" android:layout_height="0px"/>
摘要: Android 提供了 AlertDialog 類可通過其內(nèi)部類 Builder 輕松創(chuàng)建對(duì)話框窗口,但是沒法對(duì)這個(gè)對(duì)話框窗口進(jìn)行定制,為了修改 AlertDialog 窗口顯示的外觀,解決的辦法就是創(chuàng)建一個(gè)指定的 AlertDialog 和 AlertDialog.Builder 類。 定義外觀 我們希望將上面默認(rèn)的對(duì)話框外觀修改為如下圖所示的新對(duì)話框風(fēng)格: 該對(duì)話框?qū)⒅С窒旅嫣匦裕?可從資...
閱讀全文
摘要: 分類: YII 2011-11-21 16:57 737人閱讀 評(píng)論(0) 收藏 舉報(bào) http://www.localyii.com/testwebap/index.php?r=testmod/default/i...
閱讀全文
摘要: Activity的四種啟動(dòng)模式是相當(dāng)重要的知識(shí)點(diǎn),給activity設(shè)置合適的啟動(dòng)模式有利于程序的運(yùn)行。 四種啟動(dòng)模式中,singleTask,singleInstance最為重要。 Activity A設(shè)置為singleTask,能夠保證Activity A在棧中只有一個(gè)實(shí)例,這個(gè)棧也允許存在其他的實(shí)例,無論是Activity A是在棧頂還是棧底,當(dāng)有新的intent請(qǐng)求Activity A時(shí),...
閱讀全文
在進(jìn)行BlackBerry程序開發(fā)的時(shí)候,BlackBerry提供了一個(gè)管理Screen的棧,用來從任何地方來關(guān)閉位于最上一層的Screen,使 用UiApplication.getUiApplication().getActiveScreen()來得到位于最上一層的Screen的實(shí)例,并 且使用UiApplication.getUiApplication().popScreen()來關(guān)閉一個(gè)Screen或關(guān)閉當(dāng)前最上一層的 Screen,但是Android卻未提供相應(yīng)的功能,只能在一個(gè)Activity的對(duì)象里面調(diào)用finish來關(guān)閉自己,不能關(guān)閉其他的 Activity。比如我們想實(shí)現(xiàn)一個(gè)功能從屏幕A—>屏幕B—>屏幕C—>屏幕D,然后在在轉(zhuǎn)到屏幕D之前將屏幕B和C關(guān)閉,在屏幕 B和屏幕C界面點(diǎn)擊會(huì)退按鈕都可以回退到上一個(gè)屏幕,但是在屏幕D上點(diǎn)擊會(huì)退按鈕讓其回退到A,此外在一些循環(huán)跳轉(zhuǎn)的界面上如果不在合適的地方將一些不需 要的屏幕關(guān)閉,那么經(jīng)過多次跳轉(zhuǎn)后回導(dǎo)致內(nèi)存溢出。對(duì)此我們可以設(shè)計(jì)一個(gè)全局的Activity棧,使用這個(gè)棧來管理Activity。管理 Activity的類的定義如下:
import java.util.Stack;
import android.app.Activity;
public class ScreenManager {
private static Stack<Activity> activityStack;
private static ScreenManager instance;
private ScreenManager(){
}
public static ScreenManager getScreenManager(){
if(instance==null){
instance=new ScreenManager();
}
return instance;
}
public void popActivity(){
Activity activity=activityStack.lastElement();
if(activity!=null){
activity.finish();
activity=null;
}
}
public void popActivity(Activity activity){
if(activity!=null){
activity.finish();
activityStack.remove(activity);
activity=null;
}
}
public Activity currentActivity(){
Activity activity=activityStack.lastElement();
return activity;
}
public void pushActivity(Activity activity){
if(activityStack==null){
activityStack=new Stack<Activity>();
}
activityStack.add(activity);
}
public void popAllActivityExceptOne(Class cls){
while(true){
Activity activity=currentActivity();
if(activity==null){
break;
}
if(activity.getClass().equals(cls) ){
break;
}
popActivity(activity);
}
}
}