1

新しい Android プロジェクトで問題が発生しました。インテントの開始で共有設定を使用できません。プロジェクトを実行しているときに、強制的に終了し、log-cat にヌル ポインター例外が表示されます。誰でもこの問題を解決するために何か提案できますか? そして、ここに私のクラスがあります

public class NextActivity extends Activity {

    String a,b;
    Context cntxt;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.nextlayout);

        TextView et3 = (TextView)findViewById(R.id.textView3);


        SharedPreferences prefs = cntxt.getSharedPreferences("myprefs", 0);
        a =  prefs.getString("KEY_FIRST","");

            et3.setText(a);

            Button btn = (Button)findViewById(R.id.button1);

            btn.setOnClickListener(new View.OnClickListener()
            {

                public void onClick(View v) {

                Intent t = new Intent(cntxt,Kl_Activity.class);
                startActivity(t);
                }
            // and get whatever type user account id is

        });
}
}
4

5 に答える 5

3

この行が問題です

SharedPreferences prefs = cntxt.getSharedPreferences("myprefs", 0);

どこで初期化しcntxtますか?

このように使う

 SharedPreferences prefs = getSharedPreferences("myprefs", 0);
于 2012-10-29T06:46:10.013 に答える
2

このコードを試してください:

public class NextActivity extends Activity {

    String a,b;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.nextlayout);

        TextView et3 = (TextView)findViewById(R.id.textView3);


        SharedPreferences prefs = getSharedPreferences("myprefs", 0);
        a =  prefs.getString("KEY_FIRST","");

            et3.setText(a);

            Button btn = (Button)findViewById(R.id.button1);

            btn.setOnClickListener(new View.OnClickListener()
            {

                public void onClick(View v) {

                Intent t = new Intent(this,Kl_Activity.class);
                startActivity(t);
                }
            // and get whatever type user account id is

        });
}
}
于 2012-10-29T06:49:00.043 に答える
2

あなたは何も設定cntxtしません。でも必要ないのでご安心を。ActivityですContextgetSharedPreferences(...)クラス内で呼び出すことができます。

于 2012-10-29T06:46:52.383 に答える
2

あなたのエラーはこの行にあります

SharedPreferences prefs = cntxt.getSharedPreferences("myprefs", 0);

cntxtを初期化していないため..

だから交換するだけ

cntxt =this;
SharedPreferences prefs = cntxt.getSharedPreferences("myprefs", 0);

または行から cntxt を削除します。

SharedPreferences prefs = getSharedPreferences("myprefs", 0);
于 2012-10-29T06:46:52.760 に答える
2

あなたのコードに問題が見つかりました。cntxt を初期化せずに使用します。したがって、アクセスする前に初期化してください。

setContentView(R.layout.nextlayout);
cntxt = this;

または

cntxt を使用しないでください。

SharedPreferences prefs = getSharedPreferences("myprefs", 0);
于 2012-10-29T06:47:10.607 に答える