1

数値の配列を文字列として保存し(共有設定から文字列を取得します)、それを解析しようとしています。しかし、parseInt を使用すると、アプリがクラッシュします。アクティビティ Second は Main クラスによって呼び出されます。

    public class Second extends Activity {

public int[] x = new int[50];
public int[] y = new int[50];

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.second);
    SharedPreferences data= getSharedPreferences("data",0);
    SharedPreferences.Editor editor= data.edit();

    StringBuilder str = new StringBuilder();
    str.append(data.getString("val", "0")).append(",").append(getIntent().getExtras().getString("thetext"));
    String end = str.toString();
    editor.putString("val", end);
    editor.commit();

    //EditText et1= (EditText) findViewById(R.id.editText2);

    //et1.
    String savedString = data.getString("val", "0");
    savedString.replaceAll("\\s","");
    String[] st = savedString.split(",");
    int i;
    for(i=0;i<st.length;i++){
        st[i].trim();
        Log.d("Debug" , "st["+i+"] = "+st[i]);
        x[i] = Integer.valueOf(st[i]);
       y[i]=i;}
}



public void lineGraphHandler (View view)
{
    LineGraph line = new LineGraph();
    Intent lineIntent = line.getIntent(this);
    startActivity(lineIntent);
}

}

どこが悪いのでしょうか?

4

1 に答える 1

0

これらの間に線を追加します

    st[i].replaceAll("\\s","");

    Log.d("Debug" , "st["+i+"] = "+st[i])

    x[i] = Integer.parseInt(st[i]);

それが変換可能な文字列であるか、またはintに変換できない文字が誤って挿入されているかどうかを確認してください。

于 2013-03-14T04:54:44.653 に答える