0

私はこの単純なコードに問題があり、 String を宣言し、 onCreate 内でそれを変更したいのですが、 onCreate の後、「このトークンの後にVariableDeclaratorIdが期待されます」というエラーがあります!! そして、onCreate内にitem = 222を配置すると、Toast表示が私のコードであるときに「111null333」が表示されます

public class MainActivity extends Activity {

    static String item;

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

        Toast.makeText(getApplicationContext(), mStrings[0], Toast.LENGTH_SHORT).show();
    }

    item="222";

    private String[] mStrings={
            "111"+item+"333",
            "test"
    };
}
4

1 に答える 1

0

時間を割いて、質問を正しくフォーマットしていただけますか? item = "222" の場合ははっきりとわかりません。メソッド内にあるかどうか。

しかし、フォーマットが「正しい」場合、問題は item 変数への値の割り当てがメソッドまたはコードの static{} ブロックの外ではできないことです。そのため、値を割り当てる前に別のオブジェクトまたはクラス変数で item 変数を使用すると、それがデフォルト値になります (オブジェクトの場合は null、プリミティブ値の場合は 0 または false)。

お役に立てれば。

アップデート:

public class MainActivity extends Activity {

    static String item;
    private String[] mStrings;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        item = "222";
        mStrings = new String[2];
        mStrings[0] = "111" + item + "333";
        mStrings[1] = "test";
        Toast.makeText(getApplicationContext(), mStrings[0], Toast.LENGTH_SHORT).show();
    }

}
于 2013-10-31T20:58:20.960 に答える