ユーザーから設定を取得するために PreferenceFragment を使用しています。EditPreference を 1 つだけ持つ単純な設定ファイルを設計しました。次のプリファレンスフラグメントファイルを作成しました
public class fragact extends PreferenceFragment
{
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.fragpref);
}
}
私の主な活動では、ボタンをクリックしてフラグメントを表示しようとしていますが、フラグメントは透明になり、あまり見えず、下の画面が透けて見えます。フラグメントが適切にならない理由。別のアクティビティを作成し、それを使用してフラグメントを表示しました。正常に動作しました。しかし、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"));
}