Note that there are some explanatory texts on larger screens.

plurals
  1. POAndroid Dialog Crash on Positive Click
    text
    copied!<p>I've just created an android dialog that returns results to the host activity ( in my project, it's mainActivity) according to the tutorial from this link: <a href="http://developer.android.com/guide/topics/ui/dialogs.html" rel="nofollow">http://developer.android.com/guide/topics/ui/dialogs.html</a> </p> <p>It says in order to handle the event you want to do in dialog, you should use interface in the dialog class. And then, in the host activity, you should implement this interface and its methods. But i've noticed that it only crashes when positive button click. Here are my codes:</p> <pre><code> public class dialogFragement extends DialogFragment { public interface NoticeDialogListener { public void onDialogPositiveClick(DialogFragment dialog); public void onDialogNegativeClick(DialogFragment dialog); } NoticeDialogListener mListener; @Override public void onAttach(Activity activity) { // TODO Auto-generated method stub super.onAttach(activity); try { // Instantiate the NoticeDialogListener so we can send events to the host mListener = (NoticeDialogListener) activity; } catch (ClassCastException e) { // The activity doesn't implement the interface, throw exception throw new ClassCastException(activity.toString() + " must implement NoticeDialogListener"); } } public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); LayoutInflater inflater = getActivity().getLayoutInflater(); builder.setView(inflater.inflate(R.layout.dialog_layout, null)) // Add action buttons .setPositiveButton("Onayla", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { mListener.onDialogPositiveClick(dialogFragement.this); } }) .setNegativeButton("İptal et", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { mListener.onDialogNegativeClick(dialogFragement.this); } }); return builder.create(); } } </code></pre> <p>in the main activity :</p> <pre><code>public void onDialogPositiveClick(DialogFragment dialog) { EditText et=(EditText)findViewById(R.id.editText1); dosyaAdi=et.getText().toString(); dosyayaYaz(); } </code></pre> <p>LogCat errors:</p> <pre><code>11-29 23:15:01.689: E/SensorManager(23506): thread start 11-29 23:15:16.684: E/AndroidRuntime(23506): FATAL EXCEPTION: main 11-29 23:15:16.684: E/AndroidRuntime(23506): java.lang.NullPointerException 11-29 23:15:16.684: E/AndroidRuntime(23506): at com.example.coordinates.MainActivity.onDialogPositiveClick(MainActivity.java:371) 11-29 23:15:16.684: E/AndroidRuntime(23506): at com.example.coordinates.dialogFragement$1.onClick(dialogFragement.java:54) 11-29 23:15:16.684: E/AndroidRuntime(23506): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:168) 11-29 23:15:16.684: E/AndroidRuntime(23506): at android.os.Handler.dispatchMessage(Handler.java:99) 11-29 23:15:16.684: E/AndroidRuntime(23506): at android.os.Looper.loop(Looper.java:137) 11-29 23:15:16.684: E/AndroidRuntime(23506): at android.app.ActivityThread.main(ActivityThread.java:4517) 11-29 23:15:16.684: E/AndroidRuntime(23506): at java.lang.reflect.Method.invokeNative(Native Method) 11-29 23:15:16.684: E/AndroidRuntime(23506): at java.lang.reflect.Method.invoke(Method.java:511) 11-29 23:15:16.684: E/AndroidRuntime(23506): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993) 11-29 23:15:16.684: E/AndroidRuntime(23506): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760) 11-29 23:15:16.684: E/AndroidRuntime(23506): at dalvik.system.NativeStart.main(Native Method) </code></pre> <p>dosyayaYaz() function:</p> <pre><code>private void dosyayaYaz(){ sm.unregisterListener(this); // this is the line 213 File myFile; myFile= new File("sdcard/"+dosyaAdi.toString()+".csv"); try { myFile.createNewFile(); FileOutputStream fOut = new FileOutputStream(myFile); OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut); myOutWriter.append("X Koor;Y Koor;Z Koor"); myOutWriter.append("\n"); dataReader=db.rawQuery("SELECT * FROM Koordinatlar", null); while(dataReader.moveToNext()){ Float xDeg=(dataReader.getFloat(dataReader.getColumnIndex("xKoor"))); Float yDeg=(dataReader.getFloat(dataReader.getColumnIndex("yKoor"))); Float zDeg=(dataReader.getFloat(dataReader.getColumnIndex("zKoor"))); myOutWriter.append(String.format("%f", xDeg)+";"+String.format("%f", yDeg)+";"+String.format("%f", zDeg)); myOutWriter.append("\n"); } Toast toast=Toast.makeText(getBaseContext(), "Başarıyla Dosyaya Yazıldı",Toast.LENGTH_SHORT); toast.show(); sm.registerListener(this, myAccelerometer, SensorManager.SENSOR_DELAY_UI); } catch(IOException ex){ Toast toast=Toast.makeText(getBaseContext(), "Dosyaya yazma sırasında bir hata oluştu"+" "+ex.toString(),Toast.LENGTH_LONG); toast.show(); } } </code></pre> <p>onCreate function:</p> <pre><code> public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fm=getFragmentManager(); b1=(Button)findViewById(R.id.button1); b2=(Button)findViewById(R.id.button2); b3=(Button)findViewById(R.id.button3); x=(TextView)findViewById(R.id.textView4); y=(TextView)findViewById(R.id.textView5); z=(TextView)findViewById(R.id.textView6); sm=(SensorManager)getSystemService(Context.SENSOR_SERVICE); myAccelerometer= sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); sm.registerListener(this, myAccelerometer,SensorManager.SENSOR_DELAY_UI); veritabani= new VeriTabani(this); db=veritabani.getWritableDatabase(); valuesX= new ArrayList&lt;Float&gt;(); valuesY= new ArrayList&lt;Float&gt;(); valuesZ= new ArrayList&lt;Float&gt;(); zamanDiyagrami= new ArrayList&lt;Float&gt;(); b1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub grafikGoruntule(); } }); b2.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub verileriSil(); } }); b3.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub DialogFragment dialog = new dialogFragement(); dialog.show(fm, "MyDialogFragment"); } }); } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload