我正在构建一个应用程序,我希望它显示一个自定义对话框(布局从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/