0

ListActivity を拡張する次のアクティビティがあります。

public class TweetActivity extends ListActivity {

    SharedPreferences settings = this.getSharedPreferences("NewsTweetSettings", 0);

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ....
  }
} 

sharePreferences を設定した行により、常にエミュレーターでアプリがクラッシュしますが、その理由がわかりません。何か案は?

4

2 に答える 2

4

onCreate() スーパー クラスの実装を呼び出した後、oncreate() でこの行を使用します。それはあなたを助けるかもしれません

public class TweetActivity extends ListActivity {

    SharedPreferences settings;

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    settings=this.getSharedPreferences("NewsTweetSettings", 0); 
    ....
  }
} 

その理由は、行の前に「this」の値がないためですsuper.onCreate(savedInstanceState);

ハッピーコーディング

于 2012-12-06T16:40:28.640 に答える
2

this.getSharedPreferences("NewsTweetSettings", 0);あなたのOnCreate..likeでこのメソッドを呼び出します

public class TweetActivity extends ListActivity {

    SharedPreferences settings;

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    settings=this.getSharedPreferences("NewsTweetSettings", 0); 
    ....
  }
} 
于 2012-12-06T16:30:02.890 に答える