마이저를 제작중인데

건드는 클래스는 시스템 변경 쪽입니다

테스트버전을 설치해서

 

실행하는데까진 문제가없지만

시스템변경 탭을 누르면

 

예상치않게 종료되는 그거 아시죠?

그러면서 어플이 자동적으로 종료되는 현상이 발생합니다.

(물론 소스엔 에러가 없습니다)

 

이클립스 인디고버전 사용중이구요

시스템변경 클래스

xml을 그래픽레이아웃으로 보니 시스템변경클래스 xml 에 문제가 있는것같기두하구 ㅠㅠ...

그래서 에러 로그를 보니

메세지:page5.xml: ClassCastException: com.android.layoutlib.bridge.MockView cannot be cast to android.view.ViewGroup

익셉션 스택 트레이스:An exception stack trace is not available.

라고 써있구

 

또 다른 하나의 기록은

메세지:page5.xml: error!

익셉션 스택 트레이스:

java.lang.ClassCastException: com.android.layoutlib.bridge.MockView cannot be cast to android.view.ViewGroup
 at android.view.LayoutInflater.rInflate(LayoutInflater.java:619)
 at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
 at android.view.LayoutInflater.inflate(LayoutInflater.java:296)
 at com.android.layoutlib.bridge.Bridge.computeLayout(Bridge.java:397)
 at com.android.ide.common.rendering.LayoutLibrary.createLegacySession(LayoutLibrary.java:495)
 at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:340)
 at com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderService.createRenderSession(RenderService.java:380)
 at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1310)
 at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1075)
 at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.activated(GraphicalEditorPart.java:901)
 at com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor.pageChange(LayoutEditor.java:403)
 at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:290)
 at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:240)
 at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
 at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
 at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
 at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
 at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774)
 at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2745)
 at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1432)
 at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:257)
 at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
 at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
 at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4165)
 at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3754)
 at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
 at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
 at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
 at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
 at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
 at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
 at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
 at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
 at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
 at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
 at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
 at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
 at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
 at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
 at org.eclipse.equinox.launcher.Main.run(Main.java:1410)

라고 써있습니다 ㅠ.ㅠ

(page5.xml 은 위에서 언급한 시스템변경 탭,란의 클래스의 xml 문서입니다)

 

해결법좀 구해주세요 ㅠ.ㅠ

혹시나해서

xml 코드 올립니다 ㅠ.ㅠ

 

 

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:key="page5" >
 
 <PreferenceCategory
  android:title="설명"> 
  <PreferenceScreen
   android:title="주의사항"
   android:summary="설정 적용시 /system/build.prop 을 변경합니다."
   android:enabled="false"
    />
  <PreferenceScreen
   android:title="주의사항"
   android:summary="잘못 설정시 시스템에 치명적인 영향을 끼칠 수 있습니다!!!"
   android:enabled="false"
    />
  <PreferenceScreen
   android:title="주의사항"
   android:summary="모델 이름 변경시 카카오톡 데이터가 초기화 됩니다!"
   android:enabled="false"
    />
  <CheckBoxPreference
   android:key="page5_apply"
   android:title="패치항목에 추가"
   android:summary="패치시에 이 항목이 실제 시스템에 적용됩니다."
   android:defaultValue="false" /> 
  <!--
  <CheckBoxPreference
   android:key="page5_restore"
   android:title="복원항목에 추가"
   android:summary="복원시에 이 항목이 실제 시스템에 적용됩니다."
   android:defaultValue="false" /> 
  -->  
 </PreferenceCategory>
 
 <PreferenceCategory
  android:title="시스템 설정"
  android:enabled="true" > 
  <ListPreference
   android:key="MODEL"
   android:title="모델  이름 바꾸기 "
   android:summary="모델의 이름명을 바꿉니다."
   android:entries="@array/entries_model"
   android:entryValues="@array/entryValues_model"
   android:defaultValue="LU2300" />
   
  <ListPreference
   android:key="MARKET"
   android:title="마켓 설정"
   android:summary="마켓 제공자를 설정합니다."
   android:entries="@array/entries_market"
   android:entryValues="@array/entryValues_market"
   android:defaultValue="45006" />
   
  <ListPreference
   android:key="RENDER"
   android:title="렌더링 담당"
   android:summary="CPU/GPU 렌더링을 선택합니다."
   android:entries="@array/entries_render"
   android:entryValues="@array/entryValues_render"
   android:defaultValue="0" />
   
  <ListPreference
   android:key="HEAPSIZE"
   android:title="달빅 VM 힙 사이즈"
   android:summary="달빅 가상 머신의 힙 사이즈를  설정합니다."
   android:entries="@array/entries_heapsize"
   android:entryValues="@array/entryValues_heapsize"
   android:defaultValue="32m" />
   
  <ListPreference
   android:key="LCDDENSITY"
   android:title="LCD 밀도 조절"
   android:summary="LCD의 DENSITY를 설정합니다."
   android:entries="@array/entries_density"
   android:entryValues="@array/entryValues_density"
   android:defaultValue="240" />
   

   
  <PreferenceScreen
   android:title="주의사항"
   android:summary="아래는 추가되는 사항들입니다."
   android:enabled="false"
    />
  <ListPreference
   android:key="RINGDELAY"
   android:title="벨 울림 딜레이"
   android:summary="벨소리 딜레이를 조절합니다."
   android:entries="@array/entries_ringdelay"
   android:entryValues="@array/entryValues_ringdelay"
   android:defaultValue="-1" />
    
  <ListPreference
   android:key="MAXEVENT"
   android:title="초당 최대 이벤트 수"
   android:summary="초당 최대 이벤트 수를 조절합니다."
   android:entries="@array/entries_maxevent"
   android:entryValues="@array/entryValues_maxevent"
   android:defaultValue="-1" />
   
  <ListPreference
   android:key="WIFISCAN"
   android:title="와이파이 검색 간격"
   android:summary="와이파이망 검색 간격을 조절합니다."
   android:entries="@array/entries_wifiscan"
   android:entryValues="@array/entryValues_wifiscan"
   android:defaultValue="-1" />
   
  <ListPreference
   android:key="PROXDELAY"
   android:title="근접 센서 반응 시간"
   android:summary="근접 센서 반응 시간을 조절합니다."
   android:entries="@array/entries_proxdelay"
   android:entryValues="@array/entryValues_proxdelay"
   android:defaultValue="-1" />
   
  <ListPreference
   android:key="POINTER"
   android:title="포인터 간격 조절"
   android:summary="포인터 간격을 조절합니다."
   android:entries="@array/entries_pointer"
   android:entryValues="@array/entryValues_pointer"
   android:defaultValue="-1" />
   
  <ListPreference
   android:key="HOMEADJ"
   android:title="홈 우선 순위 설정"
   android:summary="홈 앱의 우선 순위를 설정합니다."
   android:entries="@array/entries_homeadj"
   android:entryValues="@array/entryValues_homeadj"
   android:defaultValue="-1" />
   
   
 </PreferenceCategory>

</PreferenceScreen>

 

//수정.

 시스템변경 클래스의 소스도 올리겠습니다

 

package com.lu2300.optimizer;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;

import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.os.Bundle;
import android.preference.ListPreference;
import android.preference.PreferenceActivity;
import android.widget.Toast;

public class Page5 extends PreferenceActivity  implements OnSharedPreferenceChangeListener {
 /** Called when the activity is first created. */

 static final int ITEMCNT = 11;   // 아이템 갯수
 String[] ITEMNAME = {"모델명",   // 아이템 이름
       "마켓",
       "렌더러",
       "힙사이즈",
       "LCD밀도",
       "벨딜레이",
       "분당최고이벤트수",
       "와이파이스캔간격",
       "근접센서딜레이",
       "포인터최소간격",
       "홈 우선순위설정",
 };
 String[] CODENAME = {"ro.product.model",   // 아이템 이름
    "ro.cdma.home.operator.numeric",
    "debug.sf.hw",
    "dalvik.vm.heapsize",
    "ro.sf.lcd_density",
    "ro.telephony.call_ring.delay",
    "windowsmgr.max_events_per_sec",
    "wifi.supplicant_scan_interval",
    "mot.proximity.delay",
    "ro.min_pointer_dur",
    "ro.HOME_APP_ADJ",
 };
 
 
 static final int IDX_MODEL = 0;   // 모델의 IDX
 static final int IDX_MARKET = 1;  // 마켓의 IDX
 static final int IDX_RENDER = 2;  // 렌더의 IDX
 static final int IDX_HEAPSIZE= 3;  // 힙사이즈의 IDX
 static final int IDX_DENSITY = 4;  // 밀도의 IDX
 static final int IDX_RINGDELAY = 5;  // 링딜레이의 IDX
 static final int IDX_MAXEVENT = 6;  // 맥스이벤트의 IDX
 static final int IDX_WIFISCAN = 7;  // WIFISCAN의 IDX
 static final int IDX_PROXDELAY = 8;  // 조도센서의 IDX
 static final int IDX_POINTER = 9;  // 포인터의 IDX
 static final int IDX_HOMEADJ = 10;  // 홈ADJ의 IDX
 
 private boolean[] bItemEnable;
 
 private ListPreference mModel;
 private ListPreference mMarket;
 private ListPreference mRender;
 private ListPreference mHeapsize;
 private ListPreference mDensity;
 private ListPreference mRingdelay;
 private ListPreference mMaxevent;
 private ListPreference mWifiscan;
 private ListPreference mProxdelay;
 private ListPreference mPointer;
 private ListPreference mHomeadj;

 ArrayList<String> lineArr = new ArrayList<String>();
    boolean bReadFile = false;

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  // Load the preferences from an XML resource
  addPreferencesFromResource(R.layout.page5);
  mModel = (ListPreference)getPreferenceScreen().findPreference("MODEL");
  mMarket = (ListPreference)getPreferenceScreen().findPreference("MARKET");
  mRender = (ListPreference)getPreferenceScreen().findPreference("RENDER");
  mHeapsize = (ListPreference)getPreferenceScreen().findPreference("HEAPSIZE");
  mDensity = (ListPreference)getPreferenceScreen().findPreference("LCDDENSITY");
  mRingdelay = (ListPreference)getPreferenceScreen().findPreference("RINGDELAY");
  mMaxevent = (ListPreference)getPreferenceScreen().findPreference("MAXEVENT");
  mWifiscan = (ListPreference)getPreferenceScreen().findPreference("WIFISCAN");
  mProxdelay = (ListPreference)getPreferenceScreen().findPreference("PROXDELAY");
  mPointer = (ListPreference)getPreferenceScreen().findPreference("POINTER");
  mHomeadj = (ListPreference)getPreferenceScreen().findPreference("HOMEADJ");

  bItemEnable = new boolean[ITEMCNT];
  for(int i = 0; i < ITEMCNT; i++){
   bItemEnable[i] = false;
  }
  
  // 권한 확인
        int isTruth = Truth.findTruth();
  if(isTruth == 0){
   addMsg("시스템 접근 권한이 없어서 적용을  할 수 없습니다.\n설정값 보기만 가능합니다.");
  }
  
     // 1.1 파일 불러오기
  FileInputStream fis; 
  BufferedReader bufferReader = null; 
  try {
   File path = new File("/system/build.prop");
   fis = new FileInputStream(path);
   bufferReader = new BufferedReader(new InputStreamReader(fis));
   String strLine = null;
   while( (strLine = bufferReader.readLine()) != null)
    lineArr.add(strLine + "\n");
   fis.close();
   bReadFile = true;
  } catch (IOException e) {
   bReadFile = false;
  }
  
  // 1.2 구문 해석해서 앱에 적용하기
  if(bReadFile == true){
   for(int i = 0; i < lineArr.size();i++){
    // 각 문자열에서 토큰으로 분리하자
    String originStr = lineArr.get(i);
    StringTokenizer st = new StringTokenizer(originStr, " \t\n=");
    String first = null;
    String second = null;
    
    if(st.hasMoreTokens())
     first = st.nextToken();
    else
     continue;

    // 모델명이면
    if(first.toLowerCase().equals("ro.product.model")){
     if(st.hasMoreTokens()){
      second = st.nextToken();     // 두번째 토큰
      mModel.setValue(second);   // 모델 설정 창에 값 넣기
      bItemEnable[IDX_MODEL] = true;
     }else{
      addMsg("잘못된 모델 설정입니다.\n 설정된 값이 없습니다.");
      bItemEnable[IDX_MODEL] = false;
     }
    }

    // 마켓 설정이면
    else if(first.toLowerCase().equals("ro.cdma.home.operator.numeric")){
     if(st.hasMoreTokens()){
      second = st.nextToken();     // 두번째 토큰
      mMarket.setValue(second);
      bItemEnable[IDX_MARKET] = true;
     }else{
      addMsg("잘못된 마켓 설정입니다.\n 설정된 값이 없습니다.");
      bItemEnable[IDX_MARKET] = false;
     }
    }

    // 렌더링 담당 설정이면
    else if(first.toLowerCase().equals("debug.sf.hw")){
     if(st.hasMoreTokens()){
      second = st.nextToken();     // 두번째 토큰
      mRender.setValue(second);
      bItemEnable[IDX_RENDER] = true;
     }else{
      addMsg("잘못된 렌더링 설정입니다.\n 설정된 값이 없습니다.");
      bItemEnable[IDX_RENDER] = false;
     }
    }

    // 힙사이즈 담당 설정이면
    else if(first.toLowerCase().equals("dalvik.vm.heapsize")){
     if(st.hasMoreTokens()){
      second = st.nextToken();     // 두번째 토큰
      mHeapsize.setValue(second);
      bItemEnable[IDX_HEAPSIZE] = true;
     }else{
      addMsg("잘못된 힙사이즈 설정입니다.\n 설정된 값이 없습니다.");
      bItemEnable[IDX_HEAPSIZE] = false;
     }
    }
      
    // LCD 밀도 설정
    else if(first.toLowerCase().equals("ro.sf.lcd_density")){
     if(st.hasMoreTokens()){
      second = st.nextToken();     // 두번째 토큰
      mDensity.setValue(second);
      bItemEnable[IDX_DENSITY] = true;
     }else{
      addMsg("잘못된 LCD 밀도 설정입니다.\n 설정된 값이 없습니다.");
      bItemEnable[IDX_DENSITY] = false;
     }
    }
    
    // 벨 울림 딜레이
    else if(first.toLowerCase().equals("ro.telephony.call_ring.delay")){
     if(st.hasMoreTokens()){
      second = st.nextToken();     // 두번째 토큰
      mRingdelay.setValue(second);
      bItemEnable[IDX_RINGDELAY] = true;
     }else{
      addMsg("잘못된 LCD 밀도 설정입니다.\n 설정된 값이 없습니다.");
      bItemEnable[IDX_RINGDELAY] = false;
     }
    }
    
    // 초당 이벤수 딜레이
    else if(first.toLowerCase().equals("windowsmgr.max_events_per_sec")){
     if(st.hasMoreTokens()){
      second = st.nextToken();     // 두번째 토큰
      mMaxevent.setValue(second);
      bItemEnable[IDX_MAXEVENT] = true;
     }else{
      addMsg("잘못된 초당최대이벤트수 설정입니다.\n 설정된 값이 없습니다.");
      bItemEnable[IDX_MAXEVENT] = false;
     }
    }
    
    // WIFI 스캔 간격
    else if(first.toLowerCase().equals("wifi.supplicant_scan_interval")){
     if(st.hasMoreTokens()){
      second = st.nextToken();     // 두번째 토큰
      mWifiscan.setValue(second);
      bItemEnable[IDX_WIFISCAN] = true;
     }else{
      addMsg("잘못된 와이파이스캔간격 설정입니다.\n 설정된 값이 없습니다.");
      bItemEnable[IDX_WIFISCAN] = false;
     }
    }
    
    // 근접 딜레이 간격
    else if(first.toLowerCase().equals("mot.proximity.delay")){
     if(st.hasMoreTokens()){
      second = st.nextToken();     // 두번째 토큰
      mProxdelay.setValue(second);
      bItemEnable[IDX_PROXDELAY] = true;
     }else{
      addMsg("잘못된 근접센서 딜레이 설정입니다.\n 설정된 값이 없습니다.");
      bItemEnable[IDX_PROXDELAY] = false;
     }
    }
    
    // 포인터 간격 간격
    else if(first.toLowerCase().equals("ro.min_pointer_dur")){
     if(st.hasMoreTokens()){
      second = st.nextToken();     // 두번째 토큰
      mPointer.setValue(second);
      bItemEnable[IDX_POINTER] = true;
     }else{
      addMsg("잘못된 포인터 간격 설정입니다.\n 설정된 값이 없습니다.");
      bItemEnable[IDX_POINTER] = false;
     }
    }
    
    // HOMEADJ
    else if(first.equals("ro.HOME_APP_ADJ")){  // 대소문자가 섞여 있으므로 toLowerCase 하지 않음.
     if(st.hasMoreTokens()){
      second = st.nextToken();     // 두번째 토큰
      mHomeadj.setValue(second);
      bItemEnable[IDX_HOMEADJ] = true;
     }else{
      addMsg("잘못된 홈 우선순위 설정입니다.\n 설정된 값이 없습니다.");
      bItemEnable[IDX_HOMEADJ] = false;
     }
    }
    
    
   }
  }
  
        if(bReadFile == true){
//      addMsg("시스템 -> 앱 : 설정값을 읽어왔습니다.");
         String str = "파일에 다음 항목이 존재하지 않습니다.\n패치시 해당 설정이 추가됩니다.\n\n";
         boolean flag = true;
         for(int i = 0; i < ITEMCNT; i++){
          if(bItemEnable[i] == false){
           if(i == IDX_RINGDELAY){
      mRingdelay.setValue("-1");
           }
           else if(i == IDX_MAXEVENT){
      mMaxevent.setValue("-1");
           }
           else if(i == IDX_WIFISCAN){
      mWifiscan.setValue("-1");
           }
           else if(i == IDX_PROXDELAY){
      mProxdelay.setValue("-1");
           }
           else if(i == IDX_POINTER){
      mPointer.setValue("-1");
           }
           else if(i == IDX_HOMEADJ){
      mHomeadj.setValue("-1");
           }
           
           str += ITEMNAME[i] + "\n";
           flag = false;
          }
         }
         
         if(flag == false){
//          addMsg(str);  // 설정 안된 값이 있다면 보여줌.
         }
        }else{
      addMsg("시스템 -> 앱 : 설정값 읽기 실패했습니다.\n앱에서 설정값을 읽어옵니다.");
        }

 }

 @Override
 protected void onResume() {
  super.onResume();
  // Setup the initial values
  mModel.setSummary(CODENAME[0] + "=" + getPreferenceScreen().getSharedPreferences().getString("MODEL", ""));
  mMarket.setSummary(CODENAME[1] + "=" + getPreferenceScreen().getSharedPreferences().getString("MARKET", ""));
  mRender.setSummary(CODENAME[2] + "=" + getPreferenceScreen().getSharedPreferences().getString("RENDER", ""));
  mHeapsize.setSummary(CODENAME[3] + "=" + getPreferenceScreen().getSharedPreferences().getString("HEAPSIZE", ""));
  mDensity.setSummary(CODENAME[4] + "=" + getPreferenceScreen().getSharedPreferences().getString("LCDDENSITY", ""));
  mRingdelay.setSummary(CODENAME[5] + "=" + getPreferenceScreen().getSharedPreferences().getString("RINGDELAY", ""));
  mMaxevent.setSummary(CODENAME[6] + "=" + getPreferenceScreen().getSharedPreferences().getString("MAXEVENT", ""));
  mWifiscan.setSummary(CODENAME[7] + "=" + getPreferenceScreen().getSharedPreferences().getString("WIFISCAN", ""));
  mProxdelay.setSummary(CODENAME[8] + "=" + getPreferenceScreen().getSharedPreferences().getString("PROXDELAY", ""));
  mPointer.setSummary(CODENAME[9] + "=" + getPreferenceScreen().getSharedPreferences().getString("POINTER", ""));
  mHomeadj.setSummary(CODENAME[10] + "=" + getPreferenceScreen().getSharedPreferences().getString("HOMEADJ", ""));
  // Set up a listener whenever a key changes
  getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
 }

 @Override
 protected void onPause() {
  super.onPause();
  getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
 }

 @Override
 public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
   String key) {
  if (key.equals("MODEL")) {
   mModel.setSummary(CODENAME[0] + "=" + getPreferenceScreen().getSharedPreferences().getString("MODEL", ""));
  }else if (key.equals("MARKET")) {
   mMarket.setSummary(CODENAME[1] + "=" + getPreferenceScreen().getSharedPreferences().getString("MARKET", ""));
  }else if (key.equals("RENDER")) {
   mRender.setSummary(CODENAME[2] + "=" + getPreferenceScreen().getSharedPreferences().getString("RENDER", ""));
  }else if (key.equals("HEAPSIZE")) {
   mHeapsize.setSummary(CODENAME[3] + "=" + getPreferenceScreen().getSharedPreferences().getString("HEAPSIZE", ""));
  }else if (key.equals("LCDDENSITY")) {
   mDensity.setSummary(CODENAME[4] + "=" + getPreferenceScreen().getSharedPreferences().getString("LCDDENSITY", ""));
  }else if (key.equals("RINGDELAY")) {
   mRingdelay.setSummary(CODENAME[5] + "=" + getPreferenceScreen().getSharedPreferences().getString("RINGDELAY", ""));
  }else if (key.equals("MAXEVENT")) {
   mMaxevent.setSummary(CODENAME[6] + "=" + getPreferenceScreen().getSharedPreferences().getString("MAXEVENT", ""));
  }else if (key.equals("WIFISCAN")) {
   mWifiscan.setSummary(CODENAME[7] + "=" + getPreferenceScreen().getSharedPreferences().getString("WIFISCAN", ""));
  }else if (key.equals("PROXDELAY")) {
   mProxdelay.setSummary(CODENAME[8] + "=" + getPreferenceScreen().getSharedPreferences().getString("PROXDELAY", ""));
  }else if (key.equals("POINTER")) {
   mPointer.setSummary(CODENAME[9] + "=" + getPreferenceScreen().getSharedPreferences().getString("POINTER", ""));
  }else if (key.equals("HOMEADJ")) {
   mHomeadj.setSummary(CODENAME[10] + "=" + getPreferenceScreen().getSharedPreferences().getString("HOMEADJ", ""));
  }
 }
 private void addMsg(String str){
  Toast.makeText(this, str, Toast.LENGTH_LONG).show();
 }
}