1. 程式人生 > >讓Android Preference Summary中實時顯示內容變更

讓Android Preference Summary中實時顯示內容變更

Android中提供的Preference可以儲存使用者的喜好設定。在啟明星安卓版員工通訊錄裡,有一個地方儲存使用者輸入的URL就是用的Preference。

但是Preference預設顯示的是Summary的值。我們希望他們可以顯示使用者輸入的只。

先看一下效果:

如果使用者未輸入,這Summary提示讓使用者輸入

 

如果使用者輸入了,這顯示使用者的輸入值

 

要實現上面的功能,

(1)增加XML配置檔案

複製程式碼

<EditTextPreference
        android:key="url"
        android:title="please enter url"
    
        >
    </EditTextPreference>

複製程式碼

 

(2)執行OnSharedPreferenceChangeListener 介面

複製程式碼

public class SettingsFragment extends PreferenceFragment   implements OnSharedPreferenceChangeListener {

    private EditTextPreference url;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.c21preference);
        
        url = (EditTextPreference)getPreferenceScreen().findPreference("url"); 
        
    }

     
    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
        /* get preference */
       
           if(key.equals("url"))
           {
               InitTextSummary(); 
           }
    }
    
    
    public void InitTextSummary()
    {
        
        
        if(url.getText().equals(""))
        {
             url.setSummary("請輸入介面地址,例如 http://demo.dotnetcms.org/worklog/"); 
        }
        else
        {
             url.setSummary(url.getText());
        }
    }
    
    
     @Override
        public void onResume() {
            super.onResume(); 
            
            InitTextSummary();
            getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
        }

        @Override
        public void onPause() {
            getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
            super.onPause();
        }

複製程式碼

如此即可。

(3)獲取使用者的配置值

複製程式碼

public void Read(View view){    
        // SharedPreferences settings = getSharedPreferences("c21preference", MODE_PRIVATE);  
        // String txt=settings.getString("ringtone", "xxx");
        // Toast.makeText(getApplicationContext(),txt, Toast.LENGTH_SHORT).show();
          
          SharedPreferences settings=PreferenceManager.getDefaultSharedPreferences(this);
         String txt=settings.getString("url", "xxx");
              Toast.makeText(getApplicationContext(),txt, Toast.LENGTH_SHORT).show();
            }

複製程式碼

相關推薦

Android Preference Summary實時顯示內容變更

Android中提供的Preference可以儲存使用者的喜好設定。在啟明星安卓版員工通訊錄裡,有一個地方儲存使用者輸入的URL就

Android Support V4的SwipeRefreshLayout支援上拉載入更多

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

設定 shell 指令碼 echo 顯示內容帶顏色

shell指令碼中echo顯示內容帶顏色顯示,echo顯示帶顏色,需要使用引數 -e  格式如下:  echo -e "\033[字背景顏色;文字顏色m字串\033[0m" 例如:  echo -e "\033[41;36m something here

三軸力感測器資料在MATLAB實時顯示

演示視訊: 使用了嵌入式PAL Board作為資料採集裝置,搭載ADI公司的ADXL345三軸力感測器。使用串列埠RS232傳輸資料到MATLAB,MATLAB建立串列埠物件,每上來一組資料就呼叫一次回撥函式。回撥函式實現繪圖的功能。Enjoy! Display th

不同入口進入同一頁面,頁面顯示內容不一樣

//從兩個a連結進入同一個頁面recharge.html,點選“充值”進入頁面時需要顯示 $('.addmon'),隱藏$('.mywallets'),點選“購物券”時則相反。此時需要判斷使用者是點選

如何實時顯示內容到TExtEdit控制元件上

# -*- coding: utf-8 -*-  from PyQt4.QtCore import *  from PyQt4.QtGui import *  import sys  import os  import time class Test(QDialog):      def __init_

HTML怎麼table的td內容過長顯示為固定長度,多餘部分用省略號代替

HTML如何讓table中的td內容過長顯示為固定長度,多餘部分用省略號代替 這個問題呢,是由於我們公司測試的部門測出來的,雖然說測試的內容本身就是個BUG,不過這個也讓我學到了一個比較好的歸類於佈局的一個小技巧,就是將td標籤中過長的內容只顯示為這個td的width的長度,之後的便以省略號

Android studio控制檯顯示輸出內容

一般用Log.d就可以了。但是有的小夥伴想要用System.out.print(),這個不能顯示的,要用System.out.println()才可以,原理不是很清楚,目前僅知道println是換行,那為什麼不換行就不能顯示了呢?有待考究。

怎麼android系統隱藏的menu按鈕顯示出來

問題? 在將專案工程最小sdk版本和target版本提高的14之後,也就是最低支援4.0之後,menu按鍵在系統上顯示不出來了,對於某些資深android玩家來說這點是比較坑爹的。 那麼下面就是解決問題的過程了。 如需轉載 註明轉自http://blog.csdn.net/

Qt實時將Qtableview內容顯示在相應的控制元件上

        學習Qt有一段時間了,幾天做東西需要將Qtableview中的資料顯示在相應的控制元件上,想看好久,終於搞定了,特意拿出來,和大家分享,也當做是自己的一個學習筆記。     首先我的

tabletd超出內容隱藏,鼠標懸停全部顯示(完整版,含js代碼)

效果 pre order 出現 fun 默認 css語法 標記 -a 一、CSS語法: text-overflow:clip | ellipsis 默認值:clip 適用於:所有元素 clip: 當對象內文本溢出時不顯示省略標記(...),而是將溢出的部分裁切掉。 elli

實時顯示從file輸入框打開的圖片C:fakepath路徑問題

webkit ins alt container dom clas ref 元素 filters html代碼: <input id="file_upload" type="file" /> <div class="image_container"

android將應用圖片保存到系統相冊並顯示

context sca new 場景 adc finally sep r+ ace 我應用到的場景是程序中在視頻通訊時截圖,將截圖保存到本地相冊中 /*** @param bmp 獲取的bitmap數據 * @param picName 自定義的圖片名*/ public

linux 實時顯示文件的內容

desc end 運行 lin 參數 實時監控 output inux 內容 1. watch -n 1 aa.txt #每個1秒顯示aa.txt的內容 2. tail -f ***.log Linux shell中有一個tail命令,常用來顯示一個文件的最後n

Android項目實戰(十六):QQ空間實現(一)—— 展示說說的評論內容並有相應點擊事件

con toast short demo append 集合 obj parent 自帶 原文:Android項目實戰(十六):QQ空間實現(一)—— 展示說說中的評論內容並有相應點擊事件大家都玩QQ空間客戶端,對於每一個說說,我們都可以評論,那麽,對於某一條評論:

Android關於listview顯示網絡圖片的問題

err layout directory istview ret exception amp contex ceo 在listview中第二次下載圖片時就會出現 SkAndroidCodec::NewFromStream returned null 可能是圖片大了點,

WPFTextBlock每一個字符顯示不同的顏色

red set ref 後臺 target wid ffffff 包含 訪問 原文:WPF中讓TextBlock每一個字符顯示不同的顏色XAML代碼: <TextBlock x:Name="tb"> <Run Foreg

使用JavaScript的Fullscreen API以全屏顯示內容

true devel chan 樣式 sele 事情 中心 直接 list 有些內容只是全屏顯示,例如您網站上的選擇圖片或視頻。當我說全屏時,我的意思是占用整個用戶屏幕,沒有任何瀏覽器chrome或甚至後臺應用程序妨礙。使用Fullscreen API,只需幾行JavaSc

五種方式你在java讀取properties文件內容不再是難題

toolbar ota oca vat include tor 代碼塊 location interface 一、背景   最近,在項目開發的過程中,遇到需要在properties文件中定義一些自定義的變量,以供java程序動態的讀取,修改變量,不再需要修改代碼的問題。就借

Linux下安裝配置 http ,修改本機http伺服器主頁,自定義顯示內容

HTTP(Hyper Text Transfer Protocol) 超文字傳輸協議,位於osi模型中的應用層。               安裝:可以使用yum等多種方式安裝,最方便的自然是yum安裝(Redhat需