Ich kann nicht scheinen, auf den Grund davon zu kommen. Verwenden von Apache POI zum Lesen von Excel-Dateien. Scheint, Fehler zu treffen. App-Force zumachenKonnte Methode für android nicht ausführen: onClick in Android
java.lang.IllegalStateException: Could not execute method for android:onClick
Meine XML android: onClick-ID hat den gleichen Namen wie meine Methode Zuhörer:
<Button
android:text="OK"
android:id="@+id/submitOK"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.AppCompat.Caption"
android:textSize="12sp"
android:background="@drawable/round_button"
android:gravity="center_vertical|center_horizontal"
android:textColor="#fff"
android:layout_alignTop="@+id/setName"
android:layout_toRightOf="@+id/setName"
android:layout_marginLeft="5dp"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignBottom="@+id/setName"
**android:onClick="inRoster"**
android:visibility="gone"
/>
public void inRoster(View v) throws IOException {
if (checkValidinFile()) {
// Send to a new page that lists your shifts, what time you want your alarms
// and what time you want messages to be sent
// What time do you want to send the messages?
// What time do you want your alarms to be?
// Do all alarm and message sending bs
} else {
// Display a toast message saying name not found
// Clear contents of the editbox for the name for user to re enter
CharSequence text = "Name not found in Roster!";
setName.setText("");
int duration = Toast.LENGTH_SHORT;
Toast.makeText(this, text, duration).show();
}
}
Diese scheinbar ist, wo die Fehler in dieser Methode kommen, aber ich Ich verstehe nicht warum.
public boolean checkValidinFile() throws IOException {
String nameToMatch = setName.getText().toString().toLowerCase();
try {
InputStream ExcelFileToRead = new FileInputStream(roster);
XSSFWorkbook wb = new XSSFWorkbook(ExcelFileToRead);
XSSFSheet sheet = wb.getSheetAt(0);
Iterator<Row> iterator = sheet.iterator();
while (iterator.hasNext()) {
Row currentRow = iterator.next();
Iterator<Cell> cellIterator = currentRow.iterator();
while (cellIterator.hasNext()) {
Cell currentCell = cellIterator.next();
System.out.println(currentCell.toString() + " ");
}
}
System.out.println();
wb.close();
ExcelFileToRead.close();
}
catch (IOException e) {
e.printStackTrace();
}
return true;
}
‚SetName‘ an der Spitze der Klasse definiert ist weltweit ohne Instanziierung und dann in onCreate wie folgt definiert:
setName = (EditText) findViewById(R.id.setName);
Jede Hilfe sehr geschätzt wird, lassen Sie mich wissen, was andere Informationen, die Sie brauchen, ich Ich bekomme auch ein anderes Problem mit I/art, das das Re-Init für zuvor fehlgeschlagene Klassen ablehnt. Siehe Link unten, wenn Sie denken, dass die beiden Probleme möglicherweise miteinander verknüpft sind.
Ich vermute, der einzige Grund, warum es downvoted ist, weil es so eine "einfache Lösung" ist, wenn es so wäre, warum, anstatt Downvoting und verlassen Sie die Seite, nicht runter, beantworten Sie die Frage, dann verlassen. Ich habe andere ähnliche Antworten angeschaut, meinen Code auf ähnliche Instanzen überprüft und diese Korrekturen ausprobiert und nichts gelöst. –