사용자 정의 대화 상자를 사용하여 제목 문자열에 대한 사용자 입력을 얻으려는 경우 사용자가 확인을 클릭하면 새로운 활동 (기본적으로 메모장)이 실행됩니다 title 문자열을 제목으로 사용합니다. 그러나 onClick() 내에서 새 활동을 발생시키는 메서드를 호출하려고하면 오류가 발생합니다.Android : 대화 상자에서 새로운 활동 시작
다음은 코드
class NewListDialog extends Dialog implements OnClickListener {
Button search;
EditText text;
public NewListDialog(Context context) {
super(context);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.newlist_dialog);
search = (Button) findViewById(R.id.dialog_confirm);
text = (EditText) findViewById(R.id.dialog_editable);
search.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v == search) {
String title_name = text.getText().toString();
// method for launching new activity
fireListEdit(title_name);
}
}
}
void fireListEdit(String title_name) {
Intent i = new Intent(this, ListEdit.class);
i.putExtra(InvenDB.KEY_TITLE, title_name);
startActivityForResult(i, ACTIVITY_CREATE);
}
있고 난
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch(item.getItemId()) {
case INSERT_ID:
NewListDialog dialog = new NewListDialog(this);
dialog.show();
return true;
case QUIT_ID:
finish();
return true;
}
return super.onMenuItemSelected(featureId, item);
}
편집이 대화 상자를 호출 내가 에뮬레이터에서 실행하면, 나는에 대한 확인을 클릭하면 사용자 정의 대화 상자에서 "응용 프로그램이 예상치 않게 중지되었습니다."오류가 발생합니다.
편집 :
이 나는 그들이 무엇을 의미하는지 정말 모르겠어요의 로그 캣입니다 : 39 : 27.668 :
01-12 17 \ ERROR/AndroidRuntime (426) : java.lang.RuntimeException가 : 활동을 시작할 수 없습니다. ComponentInfo {com.jin.inventoryapp/com.jin.inventoryapp.ListEdit} : android.database.CursorIndexOutOfBoundsException : 인덱스 0이 요청되었습니다. 크기는 0입니다.
오류가 무엇인지 또는 새 활동을 시작하려는 방법을 알려주지 마십시오. – Falmarri
죄송합니다. 시뮬레이터에서 실행할 때 사용자 지정 대화 상자에서 확인을 클릭하면 "응용 프로그램이 중지되었습니다 unexpectly "오류 – Jin
Eclipse의 LogCat으로 이동하여 발생한 오류에 대한 자세한 정보를 얻으십시오. 그리고 매니 페스트 파일에 활동을 추가하는 것을 잊지 마십시오;) –