Android:从对话框启动新活动
我尝试使用自定义对话框获取用户输入的标题字符串,然后如果用户单击OK,它将启动一个新的活动(基本上是一个记事本),并将该标题字符串作为标题。但是,当我尝试调用在onClick()内激发新活动的方法时,它会给我一个错误 这是密码Android:从对话框启动新活动,android,dialog,android-activity,Android,Dialog,Android Activity,我尝试使用自定义对话框获取用户输入的标题字符串,然后如果用户单击OK,它将启动一个新的活动(基本上是一个记事本),并将该标题字符串作为标题。但是,当我尝试调用在onClick()内激发新活动的方法时,它会给我一个错误 这是密码 class NewListDialog extends Dialog implements OnClickListener { Button search; EditText text; public NewListDi
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);
}
}
}
我把这个对话叫做
@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);
}
编辑:当我在emulator上运行它时,当我在自定义对话框上单击OK时,它只会给出“应用程序意外停止”错误
编辑:
这是logcat,我不太清楚他们的意思:\
01-12 17:39:27.668:ERROR/AndroidRuntime(426):java.lang.RuntimeException:无法启动活动组件信息{com.jin.inventoryapp/com.jin.inventoryapp.ListEdit}:android.database.CursorIndexOutOfBoundsException:请求索引0,从我可以看出适配器(数据)有问题你申请的一部分。无论您使用哪个适配器类来支持com.jin.inventoryapp.ListEdit,它都会在访问数据时遇到问题。i、 e.如果您使用数组或数据库来填充ListView,请首先检查它
用于找出谁抛出异常。您没有告诉我们错误是什么,也没有告诉我们您试图如何启动新活动抱歉,当我在模拟器上运行它时,当我在自定义对话框上单击“确定”时,它只会给我“应用程序意外停止”errorGo到Eclipse中的LogCat获取有关发生错误的更多信息。不要忘记将您的活动添加到清单文件;)是的,我在清单文件中添加了活动。LogCat在哪里?谢谢编辑:Nevermind,在Google上找到的,在我找到错误logI后会发布。我刚刚意识到我启动新活动的方法在父类内(我将其嵌套,因此Dialog类在父类内),但它是受保护的,所以Dialog应该仍然能够调用该方法,对吗?谢谢,就是这样,我的ID在ListEdit类中出现问题,现在要解决这个问题…Jin,你能标记你的问题的答案吗?顺便说一句,测试数据库问题的一个好方法是创建一个继承自AndroidTestCase的单元测试。这样,您就可以访问活动上下文,从中可以访问db并测试返回的游标obj。
@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);
}