我正在创建一个使用Frame()作为基类的GUIclass.
在我的GUIclass的init方法中,我想创建一个Frame小部件
现在我有:
class GUIclass(Frame):
def __init__(self, parent):
frame = Frame(self, parent)
Run Code Online (Sandbox Code Playgroud)
但我在其他地方见过第三行:
Frame.__init__(self, parent)
Run Code Online (Sandbox Code Playgroud)
我是编程,python和绝对继承的新手,我想知道我是否正确理解了两者之间的区别.我承诺,我做了大量的研究和阅读,但我找不到任何能让它完全清楚的东西:
在第一种情况下,我没有调用init方法,因为我创建了一个Frame对象(frame),当创建一个对象时,它的init方法被python隐式调用.
在第二个场景中,一个是在类上调用init方法(我认为这是完全合法的?)因为没有创建Frame对象,因此不会自动执行.
是对的吗?
我也看到了:
frame = Frame.__init__(self, parent)
Run Code Online (Sandbox Code Playgroud)
这真的让我失望了.这只是某人做了多余的事情还是有理由这样做?
感谢您的帮助,我想暂时放慢速度并确保我完全理解我编写的任何代码行,而不是编写和运行我理解的整个程序.
我有一个正在生产的应用程序,一些用户收到关于 VIEW https 意图的奇怪 ActivityNotFoundException。我无法在我的物理设备或模拟器上本地重现它。我还假设每个 Android 都有一个默认打开 URL 的浏览器,我错了吗?(遇到该错误的设备都没有被root)。问题可能是因为手机没有 chrome 吗?
我使用 CustomTabsIntent 打开 URL:
public static void openUrl(final Uri url, final Activity activity) {
CustomTabsIntent.Builder builder = new CustomTabsIntent.Builder();
builder.setToolbarColor(ContextCompat.getColor(activity, R.color.denis_red));
builder.setCloseButtonIcon(
BitmapFactory.decodeResource(activity.getResources(),
R.drawable.ic_arrow_back_white_24dp));
builder.setStartAnimations(activity, R.anim.activity_slide_in_right,
R.anim.activity_slide_out_left);
builder.setExitAnimations(activity, R.anim.activity_slide_in_left,
R.anim.activity_slide_out_right);
builder.build().launchUrl(activity, url);
}
Run Code Online (Sandbox Code Playgroud)
如果有帮助的话,我会添加一些堆栈跟踪。谢谢!
1:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=https://redirect.denis.de/... (has extras) }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2031)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1686)
at android.app.Activity.startActivityForResult(Activity.java:4506)
at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)
at android.app.Activity.startActivity(Activity.java:4825)
at android.support.v4.content.ContextCompat.startActivity(ContextCompat.java:248)
at android.support.customtabs.CustomTabsIntent.launchUrl(CustomTabsIntent.java:263)
at de.boxine.denisapp.util.web.ChromeTabUtil.openUrl(ChromeTabUtil.java:26)
at de.boxine.denisapp.denis.list.DenisListActivity.onOptionsItemSelected(DenisListActivity.java:82)
at android.app.Activity.onMenuItemSelected(Activity.java:3469)
at …Run Code Online (Sandbox Code Playgroud) https android android-intent activitynotfoundexception chrome-custom-tabs