Android Dialog setContentView不执行布局的上下文java文件

问题描述 投票:0回答:1

看起来很简单。 Dialog会使activity_hint布局文件膨胀。该布局文件具有HintActivity.java作为上下文。 HintActivity.java永远不会执行。我做了一些不小心的错误?

主要内容:

public void onHintClick(View view) {
    dialog = new Dialog(this);
    dialog.setContentView(R.layout.activity_hint);
    dialog.show();
}

activity_hint.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/hint_bg"
android:gravity="center"
tools:context=".HintActivity">

HintActivity.java(此文件永远不会执行。日志永远不会出现。如果我将onClickListeners设置为按钮,则它们不起作用。)

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.d("hintss", "hints");
}
java android
1个回答
2
投票

Dialog不是一项活动。 当您为对话框扩展布局时,这并不意味着布局中通过此属性提到的活动类:

tools:context=".HintActivity"

将开始执行其代码。 上述属性甚至没有编译,仅用于设计目的。 您可以使用findViewById的膨胀布局视图,例如:

Button button = dialog.findViewById(R.id.somebutton)

但所有代码必须用onHintClick()编写

© www.soinside.com 2019 - 2024. All rights reserved.