android - 如何在首次安装时向数据库插入名称,显示带有xml的自定义对话框,

标签 android database sqlite android-alertdialog

我正在构建一个应用程序,我希望它显示一个自定义对话框(布局从XML膨胀)。该对话框将用于要求用户输入其名称,然后单击“确定”。该名称需要存储在sqlite数据库中。
不幸的是,当我运行MainMenu.java活动时,应用程序崩溃。
这是我的代码:

import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;


public class MainMenu extends Activity {
    Cursor model=null;
    final Context context = this;
    Helper Helper=null;
    Cursor Nama=null;
    EditText name=null;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main_menu);
        Helper=new Helper(this);
        String Nem = Helper.getNama(Nama);
        if (Nem=="") {
            final Dialog dialog = new Dialog(context);
            dialog.setContentView(R.layout.dialogmintanama);

            Button dialogButton = (Button) dialog.findViewById(R.id.OKbutton);
            dialogButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    name=(EditText)findViewById(R.id.username);
                    Helper.insert(name.getText().toString(),"","");
                    dialog.dismiss();
                }
            });

            dialog.show();
           }

        }
            public void Start(View v) {
                final Intent i = new Intent(getApplicationContext(), ListMenu.class);
                startActivity(i);


            }

    }

最佳答案

可能是因为这个

name=(EditText)findViewById(R.id.username);

把它改成
name=(EditText)dialog.findViewById(R.id.username);

正如您所说,您必须在自定义对话框中显示editext。
如果未解析,请打印堆栈跟踪。

关于android - 如何在首次安装时向数据库插入名称,显示带有xml的自定义对话框,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41393650/

相关文章:

android - 致命信号 11 Android baseApi.init()

drupal - 将数据库模式移至 drupal

java - 在 Java 桌面应用程序中进行数据库访问的最佳方式

iPhone SQLite (FMDB) 查询花费过多时间

Android AppWidgetManager 方法 updateAppWidget 无法设置 Intent 、加载数据。它是随机发生的

android - 如何从谷歌搜索网站结果中推广/打开应用程序?

java - 初始化 Aeris map View 时为谷歌地图获取 null

database - 跟踪数据库的变化

java - SQLiteDatabase 多线程锁定模式

java - 安卓sqlite问题