作为程序的一部分,我编写了以下方法(hidden是一个布尔变量)。它位于名为DelMsg
的对象中,该对象继承了一个名为info_msg()
的类型。 def info_msg(self):
info = DelMsg.info_msg(self)
if self.code == 'l': # If message is long message
return info + '#' + str(len(self.content)) + '#' + str(self.hidden)
elif self.code == 'm': # If message is snap message
return info + '#' + str(self.timeout) + '#' + self.content
else: # If message is a normal message
return info + '#' + self.content + '#' + str(self.hidden)
覆盖并在其父类型中使用类似的方法。
TypeError: cannot concatenate 'str' and 'bool' objects
但是每次调用方法(来自对象实例)时,它都会显示错误:hidden
,并说错误在最后一行,即使{{1}}被解析为字符串。< / p>
有没有办法在不使用条件的情况下解决这个问题?
答案 0 :(得分:1)
以下是您可以继续调试代码的方法:
编辑您的代码以包含以下public static void showAlert(Context context,String title,String message) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
alertDialogBuilder.setTitle(title);
alertDialogBuilder.setMessage(message);
alertDialogBuilder.setCancelable(false);
alertDialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
final AlertDialog alertDialog = alertDialogBuilder.create();
//Here's the magic..
//Set the dialog to not focusable (makes navigation ignore us adding the window)
alertDialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
alertDialog.show();
//Set the dialog to immersive
alertDialog.getWindow().getDecorView().setSystemUiVisibility(
((Activity)context).getWindow().getDecorView().getSystemUiVisibility());
//Clear the not focusable flag from the window
alertDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
}
print(type(variable))
然后,运行程序并查看哪个其他变量是布尔值。
def info_msg(self):
print(type(info))
print(type(self.content))
return info + '#' + self.content + '#' + str(self.hidden)
添加到布尔变量最多,所有变量都是boolean类型,因此您可以按如下方式编辑代码:
str(...)
另一个选择是使用def info_msg(self):
return str(info) + '#' + str(self.content) + '#' + str(self.hidden)
,它将负责将变量转换为字符串:
str.format
答案 1 :(得分:0)
可能info
或content
也是布尔值。你可以用
def info_msg(self):
return str(info) + '#' + str(self.content) + '#' + str(self.hidden)