2013-06-26 34 views
0

我在使用list前缀时遇到了问题。我想一个列表PREF值匹配另一个值与if语句List Pref trouble android

我敢打赌,没有道理,所以我会张贴代码...

stripedMain:

String stripeType = ""; 
void drawStriped() { 
      final SurfaceHolder holder = getSurfaceHolder(); 
      Canvas c = null; 
      try { 
       c = holder.lockCanvas(); 
       if (c != null) { 
        if (stripeType == "vert") 
        { 
        android.util.Log.d("stripedLog", "working");  
         } 
       } 
      } finally { 
       if (c != null) 
        holder.unlockCanvasAndPost(c); 
      } 
............. 

的settings.xml:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > 

    <PreferenceCategory 
     android:key="firKey" 
     android:title="Wallpaper Settings" > 

     <ListPreference 
      android:defaultValue="hor" 
      android:entries="@array/stripe_entries" 
      android:entryValues="@array/stripe_values" 
      android:key="stripe_type" 
      android:title="Type" /> 

    </PreferenceCategory> 

</PreferenceScreen> 

shapes.xml:

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> 

    <string-array name="stripe_entries"> 
     <item>"Horizontal"</item> 
     <item>"Vertical"</item> 
     <item>"Both"</item> 
      <item>"Both+CrossOver"</item> 
    </string-array> 

    <string-array name="stripe_values"> 
     <item>"hor"</item> 
     <item>"vert"</item> 
     <item>"both"</item> 
     <item>"bothOver"</item> 
    </string-array> 

</resources> 

这不是工作,我不知道为什么....

回答

0

它不工作怎么把玉还没有获取的默认共享偏好将它与一个字符串比较

,所以你必须做的就是获取它然后像这样比较:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 

    String stripeType = prefs.getString("stripe_type", "stripe_type") 


    void drawStriped() { 
       final SurfaceHolder holder = getSurfaceHolder(); 
       Canvas c = null; 
       try { 
        c = holder.lockCanvas(); 
        if (c != null) { 
         if (stripeType.equalsIgnoreCase("vert")) 
         { 
         android.util.Log.d("stripedLog", "working");  
          } 
        } 
       } finally { 
        if (c != null) 
         holder.unlockCanvasAndPost(c); 
       } 
+0

谢谢你,你的答案并不是真正的现货,但它确实帮助我找出了问题。概率是,我没有这样做:if(stripeType.equalsIgnoreCase(“vert”)) –

+0

好吧现在你的代码开始工作? –