Java 如何从TableLayout获取数据,然后将其解析为int[][]数组?
我正在尝试开发简单的矩阵计算器Java 如何从TableLayout获取数据,然后将其解析为int[][]数组?,java,android,Java,Android,我正在尝试开发简单的矩阵计算器 TableLayout table = new TableLayout(this); for (int i = 0; i < size; i++) { TableRow row = new TableRow(this); for (int j = 0; j < size; j++) { EditText cell = new EditText(this); cell
TableLayout table = new TableLayout(this);
for (int i = 0; i < size; i++) {
TableRow row = new TableRow(this);
for (int j = 0; j < size; j++) {
EditText cell = new EditText(this);
cell.setInputType(InputType.TYPE_CLASS_NUMBER);
row.addView(cell);
}
table.addView(row);
}
但我有个例外。我知道我为什么会得到它,但我不知道如何避免它
堆栈跟踪:
03-19 17:16:59.366 3610-3610/com.example.matrixtest E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.matrixtest, PID: 3610
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.matrixtest/com.example.matrixtest.MainActivity}: java.lang.NumberFormatException: Invalid int: ""
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.NumberFormatException: Invalid int: ""
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parseInt(Integer.java:358)
at java.lang.Integer.parseInt(Integer.java:334)
at com.example.matrixtest.MainActivity.onCreate(MainActivity.java:33)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
03-19 17:17:02.059 3610-3610/? I/Process: Sending signal. PID: 3610 SIG: 9
这是一个非常广泛的问题。到目前为止你都试了些什么?对不起,我没有看到你的消息。我说了我试过的。我知道,我会得到一个异常,因为没有输入任何内容,但我如何才能等待矩阵被填充?如果你得到一个异常,请发布完整的堆栈跟踪,以便我们知道哪里出了问题。看起来你必须决定当单元格不包含有效数字时要做什么。你必须抓住NumberFormatException并在那里做出决定。但我甚至没有时间输入它。这是个问题。我不知道如何让用户输入值,然后在用户输入值后,将它们解析为int[][],以便进一步计算
03-19 17:16:59.366 3610-3610/com.example.matrixtest E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.matrixtest, PID: 3610
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.matrixtest/com.example.matrixtest.MainActivity}: java.lang.NumberFormatException: Invalid int: ""
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.NumberFormatException: Invalid int: ""
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parseInt(Integer.java:358)
at java.lang.Integer.parseInt(Integer.java:334)
at com.example.matrixtest.MainActivity.onCreate(MainActivity.java:33)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
03-19 17:17:02.059 3610-3610/? I/Process: Sending signal. PID: 3610 SIG: 9