java.lang.NoSuchMethodError : android. app.Dialog.create

标签 java android dialog

我创建了自定义对话框布局。当用户按下按钮时,将显示对话框。 Android 版本的 Lollipop 完美地向我显示了对话框,但如果版本低于 Lollipop ,它会抛出错误。

这是我的代码:

public class MainActivity extends AppCompatActivity {

    private Button click;
    private Dialog dialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        click=(Button)findViewById(R.id.click);

        click.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(v.equals(click))
                {
                    dialog=new Dialog(MainActivity.this);
                    dialog.setContentView(R.layout.check_in_weight_dialog);
                    dialog.create();
                    dialog.show();
                }
            }
        });
    }

这是我的自定义对话框布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:padding="16dp"
    android:layout_height="wrap_content">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="10">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Check In Weight"
            android:textColor="@android:color/black"
            android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium"
            android:gravity="center"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginTop="20dp"
        android:layout_weight="20">

        <EditText
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:inputType="number"
            android:hint="Current Weight"
            android:background="@drawable/editext_border"
            android:id="@+id/edtCheckInWhgt"/>

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:gravity="center"
        android:layout_marginTop="20dp"
        android:layout_weight="10">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="OK"
            android:gravity="center"
            android:id="@+id/btncheckin"
            android:textColor="@android:color/holo_blue_light"
            android:background="?android:attr/selectableItemBackground"/>

    </LinearLayout>


</LinearLayout>

最佳答案

dialog.create();

这仅适用于 Lollipop 。删除此行

关于java.lang.NoSuchMethodError : android. app.Dialog.create,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32584118/

相关文章:

javascript - 如何自定义 Javascript 对话选项?

android - 在 DialogFragment IllegalStateException 中膨胀 RecyclerView

java - 根据键盘输入让我的 Sprite 面向某个方向 - Java 游戏

java - JPA 对于 GenerationType.IDENTITY 持久失败

java - Commons 编解码器中的 Base64.decode(privateKeyString, Base64.DEFAULT)

android - 谷歌分析 : How to display the breakdown of an event parameter over custom period?

JAVA - 如何确保在执行器开始阻塞 UI 线程之前隐藏节点

android - 如何使用房间自动迁移删除/重命名多个列

android - 如何旋转主屏幕

android - 即使手机处于锁定模式也会显示 Activity