In my app by longCLick I create AlertDialog by this method:
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DIALOG_TEXT_ENTRY:
// This example shows how to add a custom layout to an AlertDialog
LayoutInflater factory = LayoutInflater.from(this);
final View textEntryView = factory.inflate(R.layout.custom_dialog, null);
final EditText cdet11 = (EditText) findViewById(R.id.cdet1);
final TextView tv11 = (TextView) findViewById(R.id.buname1);
return new AlertDialog.Builder(Main.this)
.setIcon(R.drawable.icon)
.setTitle("Title")
.setView(textEntryView)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
android.os.Debug.waitingForDebugger();
String string1 = getSharedPreferences("PREFERENCE", MODE_PRIVATE).getString("butname11", "");
String ss1 = cdet11.getText().toString();
getSharedPreferences("PREFERENCE", MODE_PRIVATE)
.edit()
.putString("butname11", ss1 )
.commit();
String string11 = getSharedPreferences("PREFERENCE", MODE_PRIVATE).getString("butname11", "");
tv11.setText(string11);
/* User clicked OK so do some stuff */
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
/* User clicked cancel so do some stuff */
}
})
.create();
}
return null;
}
BUT, I take such error…
10-05 14:54:25.319: E/AndroidRuntime(6331): java.lang.NullPointerException
10-05 14:54:25.319: E/AndroidRuntime(6331): at com.home.Main$3.onClick(Main.java:166)
10-05 14:54:25.319: E/AndroidRuntime(6331): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158)
10-05 14:54:25.319: E/AndroidRuntime(6331): at android.os.Handler.dispatchMessage(Handler.java:99)
10-05 14:54:25.319: E/AndroidRuntime(6331): at android.os.Looper.loop(Looper.java:144)
10-05 14:54:25.319: E/AndroidRuntime(6331): at android.app.ActivityThread.main(ActivityThread.java:4937)
10-05 14:54:25.319: E/AndroidRuntime(6331): at java.lang.reflect.Method.invokeNative(Native Method)
10-05 14:54:25.319: E/AndroidRuntime(6331): at java.lang.reflect.Method.invoke(Method.java:521)
10-05 14:54:25.319: E/AndroidRuntime(6331): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
10-05 14:54:25.319: E/AndroidRuntime(6331): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
10-05 14:54:25.319: E/AndroidRuntime(6331): at dalvik.system.NativeStart.main(Native Method)
Error occures on
String ss1 = cdet11.getText().toString();
What’s the problem?
Add the View reference to these,
Like this,
Only when you provide the view where your Elements can be found android will know to where to look for.
If not it looks into ContentView of your Activity and will throw you NPE.