-1
다음은 onOptionsItemSelected
콜백 코드입니다. 나는 ID R.id.up
와 항목에 문제가있어 :옵션 메뉴를 사용할 때의 예외
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.can:
can = false;
sel = false;
FileName.setEnabled(false);
FileName.setText("");
String[] values = new String[] {"Open", "Save (As)", "New"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
return true;
case R.id.sel:
can = false;
sel = false;
SelDir = CurDir;
if (SelDir != null)
{
try
{
file = new File(SelDir, (FileName.getText().toString() + ".txt"));
w = new FileWriter(file);
writer = new BufferedWriter(w);
writer.write(TextEditor.getText().toString());
writer.close();
}
catch (Exception e)
{
Toast.makeText(this, "Error:\n" + e.getMessage().toString(), Toast.LENGTH_LONG).show();
}
}
else
{
Toast.makeText(this, "Error:\n" + "Please Select A Directory", Toast.LENGTH_LONG).show();
}
values = new String[] {"Open", "Save (As)", "New"};
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
String temp = FileName.getText().toString() + ".txt";
FileName.setText(SelDir + "/" + temp);
FileName.setEnabled(false);
SelDir = null;
return true;
case R.id.up:
if (CurDir != homeDir)
{
CurDir = CurDir.substring(0, CurDir.lastIndexOf("/") - 1);
dir = new File(CurDir);
values = dir.list(filter);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
내가 항목을 R.id.up
내 응용 프로그램 강제 닫히고을 누르면. 다른 두 항목은 정상적으로 작동합니다. 내 코드로 문제를 찾지 못했습니다.
편집 : 을 제외하고 logcat
:
10-03 11:57:45.952: E/AndroidRuntime(18460): FATAL EXCEPTION: main
10-03 11:57:45.952: E/AndroidRuntime(18460): java.lang.NullPointerException
10-03 11:57:45.952: E/AndroidRuntime(18460): at java.util.Arrays$ArrayList.<init>(Arrays.java:47)
10-03 11:57:45.952: E/AndroidRuntime(18460): at java.util.Arrays.asList(Arrays.java:169)
10-03 11:57:45.952: E/AndroidRuntime(18460): at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:125)
10-03 11:57:45.952: E/AndroidRuntime(18460): at com.IPP.EZPadd.EZPaddActivity.onOptionsItemSelected(EZPaddActivity.java:102)
10-03 11:57:45.952: E/AndroidRuntime(18460): at android.app.Activity.onMenuItemSelected(Activity.java:2205)
10-03 11:57:45.952: E/AndroidRuntime(18460): at com.android.internal.policy.impl.PhoneWindow.onMenuItemSelected(PhoneWindow.java:823)
10-03 11:57:45.952: E/AndroidRuntime(18460): at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:143)
10-03 11:57:45.952: E/AndroidRuntime(18460): at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855)
10-03 11:57:45.952: E/AndroidRuntime(18460): at com.android.internal.view.menu.IconMenuView.invokeItem(IconMenuView.java:532)
10-03 11:57:45.952: E/AndroidRuntime(18460): at com.android.internal.view.menu.IconMenuItemView.performClick(IconMenuItemView.java:122)
10-03 11:57:45.952: E/AndroidRuntime(18460): at android.view.View$PerformClick.run(View.java:9081)
10-03 11:57:45.952: E/AndroidRuntime(18460): at android.os.Handler.handleCallback(Handler.java:587)
10-03 11:57:45.952: E/AndroidRuntime(18460): at android.os.Handler.dispatchMessage(Handler.java:92)
10-03 11:57:45.952: E/AndroidRuntime(18460): at android.os.Looper.loop(Looper.java:130)
10-03 11:57:45.952: E/AndroidRuntime(18460): at android.app.ActivityThread.main(ActivityThread.java:3686)
10-03 11:57:45.952: E/AndroidRuntime(18460): at java.lang.reflect.Method.invokeNative(Native Method)
10-03 11:57:45.952: E/AndroidRuntime(18460): at java.lang.reflect.Method.invoke(Method.java:507)
10-03 11:57:45.952: E/AndroidRuntime(18460): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
10-03 11:57:45.952: E/AndroidRuntime(18460): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
10-03 11:57:45.952: E/AndroidRuntime(18460): at dalvik.system.NativeStart.main(Native Method)
충돌 로그를 제공하고, 결과를 확인하지하시기 바랍니다 lastIndexOf는 까다로울 수 있습니다. 일부 경우 substring 메서드가 다음과 같이 끝날 수 있습니다. substring (0, -1) 또는 하위 문자열 (0, -2)이라고 생각합니다. 하지만 우리가 도움을주고 싶다면 충돌 로그가 필요합니다. –
LogCat please? – Swayam
ok 로그를 추가했습니다. – Timberwolf