AlertDialog的点击事件报错!!!求大神

poptangchen12 2015-03-14 01:02:20
final ListView lv=(ListView)findViewById(R.id.listView1);
final ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String,Object>>();
HashMap<String, Object> map = new HashMap<String, Object>();
final SimpleAdapter mSimpleAdapter=new SimpleAdapter(this,listItem,R.layout.item,new String[]{"1","2"},new int[]{R.id.itemtext1,R.id.itemtext2});
lv.setAdapter(mSimpleAdapter);
Button btn=(Button)findViewById(R.id.add);
btn.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO 自动生成的方法存根
Builder builder=new AlertDialog.Builder(MainActivity.this);
builder.setTitle("添加任务:");
LayoutInflater inflater=getLayoutInflater();
View view=inflater.inflate(R.layout.addactivity, null);
builder.setView(view);
builder.setPositiveButton("添加", new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO 自动生成的方法存根
EditText editname=(EditText)findViewById(R.id.editName);
String name=editname.getText().toString();
EditText edittime=(EditText)findViewById(R.id.editTime);
String time=edittime.getText().toString();
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("1", name);
map.put("2", time);

listItem.add(map);

mSimpleAdapter.notifyDataSetChanged();
}
});
builder.setNegativeButton("取消", null);
builder.create().show();
}
});



这是代码,简单说一下,在主界面放一个button和一个listview,点击button弹出AlertDialog,AlertDialog是通过addactivity.xml来布局的,在AlertDialog里面有两个EditText(editName,editTime),我希望通过setPosttiveButton获取这两个EditText的值,放到主界面的ListView里面,可是这样报错,大神帮忙看一下哪里错了,谢谢
...全文
107 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
windfury_plus 2015-03-14
  • 打赏
  • 举报
回复
引用 2 楼 poptangchen12 的回复:
03-14 13:22:37.962: I/Choreographer(2835): Skipped 39 frames! The application may be doing too much work on its main thread. 03-14 13:22:56.442: D/AndroidRuntime(2835): Shutting down VM 03-14 13:22:56.442: W/dalvikvm(2835): threadid=1: thread exiting with uncaught exception (group=0xb2e9e648) 03-14 13:22:56.442: E/AndroidRuntime(2835): FATAL EXCEPTION: main 03-14 13:22:56.442: E/AndroidRuntime(2835): java.lang.NullPointerException 03-14 13:22:56.442: E/AndroidRuntime(2835): at com.example.MainActivity$1$1.onClick(MainActivity.java:49) 03-14 13:22:56.442: E/AndroidRuntime(2835): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166) 03-14 13:22:56.442: E/AndroidRuntime(2835): at android.os.Handler.dispatchMessage(Handler.java:99) 03-14 13:22:56.442: E/AndroidRuntime(2835): at android.os.Looper.loop(Looper.java:137) 03-14 13:22:56.442: E/AndroidRuntime(2835): at android.app.ActivityThread.main(ActivityThread.java:5103) 03-14 13:22:56.442: E/AndroidRuntime(2835): at java.lang.reflect.Method.invokeNative(Native Method) 03-14 13:22:56.442: E/AndroidRuntime(2835): at java.lang.reflect.Method.invoke(Method.java:525) 03-14 13:22:56.442: E/AndroidRuntime(2835): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 03-14 13:22:56.442: E/AndroidRuntime(2835): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 03-14 13:22:56.442: E/AndroidRuntime(2835): at dalvik.system.NativeStart.main(Native Method) 这是log
你有个地方少了view 把第二个输入对话框的创建,改为

EditText editname=(EditText)view.findViewById(R.id.editName);
String name=editname.getText().toString();
EditText edittime=(EditText)view.findViewById(R.id.editTime);
String time=edittime.getText().toString();
不能直接findviewbyid 需要view.findviewbyid view就是前面你得到的view,要设为final类型
poptangchen12 2015-03-14
  • 打赏
  • 举报
回复
03-14 13:22:37.962: I/Choreographer(2835): Skipped 39 frames! The application may be doing too much work on its main thread. 03-14 13:22:56.442: D/AndroidRuntime(2835): Shutting down VM 03-14 13:22:56.442: W/dalvikvm(2835): threadid=1: thread exiting with uncaught exception (group=0xb2e9e648) 03-14 13:22:56.442: E/AndroidRuntime(2835): FATAL EXCEPTION: main 03-14 13:22:56.442: E/AndroidRuntime(2835): java.lang.NullPointerException 03-14 13:22:56.442: E/AndroidRuntime(2835): at com.example.MainActivity$1$1.onClick(MainActivity.java:49) 03-14 13:22:56.442: E/AndroidRuntime(2835): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166) 03-14 13:22:56.442: E/AndroidRuntime(2835): at android.os.Handler.dispatchMessage(Handler.java:99) 03-14 13:22:56.442: E/AndroidRuntime(2835): at android.os.Looper.loop(Looper.java:137) 03-14 13:22:56.442: E/AndroidRuntime(2835): at android.app.ActivityThread.main(ActivityThread.java:5103) 03-14 13:22:56.442: E/AndroidRuntime(2835): at java.lang.reflect.Method.invokeNative(Native Method) 03-14 13:22:56.442: E/AndroidRuntime(2835): at java.lang.reflect.Method.invoke(Method.java:525) 03-14 13:22:56.442: E/AndroidRuntime(2835): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 03-14 13:22:56.442: E/AndroidRuntime(2835): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 03-14 13:22:56.442: E/AndroidRuntime(2835): at dalvik.system.NativeStart.main(Native Method) 这是log
浅笑_JIE 2015-03-14
  • 打赏
  • 举报
回复
把Log贴出来吧

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧