2013-07-28 30 views
0

我使用PreferenceFragment從用戶獲取首選項。我設計了一個只有一個EditPreference的簡單首選項文件。我創建了以下preferencefragement文件PreferenceFragment顯示不正確

public class fragact extends PreferenceFragment 
{ 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.fragpref); 
    } 

} 

在我的主要活動我試圖展現在button.However的點擊片段中的片段來自透明,還不是很明顯的和潛在的畫面通過它看到。 爲什麼片段不適當。我創建了另一個活動並使用它來顯示fragment.it,但是爲什麼我們可以直接顯示片段,而不是通過其oncreate中的另一個活動來顯示,並通過類fragprefmain中的startActivity調用它。

public class fragprefmain extends Activity 
{ 
    EditText et; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.fragpref); 
     et=(EditText)findViewById(R.id.editText1); 
    } 

    public void showp(View v) 
    { 
     FragmentManager fm=getFragmentManager(); 
     FragmentTransaction ft=fm.beginTransaction(); 
     ft.replace(android.R.id.content, new fragact()); 
     ft.commit(); 
    } 

    public void showval(View v) 
    { 
     SharedPreferences sp=PreferenceManager.getDefaultSharedPreferences(this); 
     et.setText(sp.getString("ekey", "no valued given")); 

    } 

回答

0

也許嘗試與您在活動的XML文件中定義

它可以是一個空的佈局自己的佈局ID替換不透明ID

android.R.id.content 

,但你必須給佈局一個id,說:

<LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:id="@+id/my_layout_id"> 

所以現在你得到:

.replace/add(R.id.my_layout_id, new fragact());