2010-10-07 91 views
1

我有类显示自定义对话框的Android输入对话框

public class Add_Category_Dialog { 
public String inputed_value; 
private Context context; 
public Add_Category_Dialog(Context context){ 
    this.context=context; 
} 
public void showDialog(){ 

     AlertDialog.Builder alert = new AlertDialog.Builder(context); 

     alert.setTitle("Title"); 
     alert.setMessage("Message"); 


     final EditText input = new EditText(context); 
     alert.setView(input); 

     alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
     inputed_value = input.getText().toString(); 

     } 
     }); 

     alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 

      return; 
     } 
     }); 

     alert.show(); 
} 

}

从主要活动呼唤:

@Override 
public boolean onOptionsItemSelected(MenuItem item){ 
    switch(item.getItemId()){ 
    case R.id.add_category_item: 
     Add_Category_Dialog add_dialog=new Add_Category_Dialog(getBaseContext()); 
     add_dialog.showDialog(); 
     addCategory(add_dialog.inputed_value); 
     return true; 
    } 
    return false; 
} 

在模拟器运行时错误在运行时occures,logcat的:

android.view.WindowManager $ BadTokenException:无法添加窗口 - 标记null不是一个应用程序

UPD现在我有sqlite的错误代码19,约束失败

private void addCategory(String string){ 
    SQLiteDatabase db=recipes.getWritableDatabase(); 
    ContentValues values=new ContentValues(); 
    values.put(CATEGORY_NAME, string); 
    db.insertOrThrow(CATEGORY_TABLE, null, values); 
} 

回答