最初に私の英語には申し訳ありません;)私はAndroid用プロファイルマネージャーを作成していますが、いくつかのSharedPreferencesファイルからgetStringを作成してlistViewを作成します。それは私のコードの一部です:いくつかのSharedPreferencesファイルからgetStringを作成し、listViewを作成します。
private static final String PN = "profile_name";
private EditTextPreference editText;
private SharedPreferences preferences;
public class Profile_Preferences extends PreferenceActivity {
...
private void SavePreferences() {
String text= editText.getText().toString();
preferences = getSharedPreferences("Profile_" + text, Activity.MODE_PRIVATE); //Here we created SharedPreferences file with name "Profile_"+ this what user write in editText
SharedPreferences.Editor preferencesEditor = preferences.edit();
preferencesEditor.putString(PN, editText.getText());
preferencesEditor.commit();
ユーザーがいくつかのプロファイルを実行していたので、たとえばProfile_home.xml、Profile_work.xml、Profile_something.xmlなどのファイルがあります。今、私はこのファイルからプロファイル名でlistViewを作成しません。
public class Tab_profiles extends ListActivity {
ArrayList<String> listItems = new ArrayList<String>();
ArrayAdapter<String> adapter;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice, listItems);
setListAdapter(adapter);
...
public void LoadList() {
//It's a good idea to getString "profile_name" form every xml file with name "Profile_" + "" ?
preferences = getSharedPreferences("Profile_"+ "", Activity.MODE_PRIVATE);
String take_profile_name = preferences.getString("profile_name", null);
listItems.add(take_profile_name);
adapter.notifyDataSetChanged();
}
しかし、これは動作しません...ログインlogcat:それは私の次のアクティビティの
FATAL EXCEPTION: MAIN
java.land.Null.PointerException
at android.widget.ArrayAdaper.createViewFromResource(ArrayAdapter.java:355)
...
私は今、それは間違っているwhoat ...
私を助けてくださいません。
:;)書き込みやコードのいずれかの答えと私のエラーのために申し訳ありませんありがとうござい
はい:ここではすべてのカスタムという名前のプリファレンスを取得するには少しの回避策です。あなたは正しいのです。このコードは完了していませんが、最初はプロファイル名でlistViewを表示しませんでした。 2番目のパラメータにnullを追加すると、getStringの空の文字列 ""が表示され、logcatにエラーはありませんが、listViewには値が表示されません。 – user1211477
listViewには値がありません。 LoadList()で開いている場合、キーに "profile_name"という文字列が含まれていないので、 ""が返されます。たとえばキー "profile_name"の "USERINPUT"を含むProfile_USERINPUT.xml – ottel142
いくつかのプロファイルを作成すると、 "Home"というXMLファイル "Profile_home.xml"が生成され、ここには "profile_name"というキーがあります。しかし、どのようにすべてのsharedPreferences XMLファイルを検索し、listViewの "profile_name"を見る?どのように最初の "Profile_"からすべてのファイルを検索する? getSharedPreferences( "Profile_" + ""、Activity.MODE_PRIVATE)が悪いですか? H – user1211477