Ошибка FATAL EXCEPTION: main java.lang.NullPointerException

Пишу небольшой аналог Яндекс.Метро под андроид. Есть основной класс:

public class MarkLayerTestActivity extends AppCompatActivity {

private MapView mapView;
private MarkLayer markLayer;
Dialog myDialog;
private Window window;
TextView metroname;
TextView metronameinf;
TextView infoDesc;

String nameStation;
String stationDesc;
String firtsSt;
String secSt;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_mark_layer_test);
    myDialog = new Dialog(this);
    myDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);

    mapView = (MapView) findViewById(R.id.mapview);
    Bitmap bitmap = null;
    try {
        bitmap = BitmapFactory.decodeStream(getAssets().open("map.png"));
    } catch (IOException e) {
        e.printStackTrace();
    }
    mapView.loadMap(bitmap);
    mapView.setMapViewListener(new MapViewListener() {
        @Override
        public void onMapLoadSuccess() {
            List<PointF> marks = TestData.getMarks();
            final List<String> marksName = TestData.getMarksName();
            final List<String> marksDesc = TestData.getMarksDesc();
            markLayer = new MarkLayer(mapView, marks, marksName);
            markLayer.setMarkIsClickListener(new MarkLayer.MarkIsClickListener() {
                @Override
                public void markIsClick(int num) {
                    //Toast.makeText(getApplicationContext(), marksName.get(num) + "", Toast.LENGTH_SHORT).show();
                    ShowPopup(null);
                    nameStation = marksName.get(num);
                    stationDesc = marksDesc.get(num);
                    metroname = (TextView) myDialog.findViewById(R.id.metroname);
                    metroname.setText(marksName.get(num));
                }
            });
            mapView.addLayer(markLayer);
            mapView.refresh();
        }

        @Override
        public void onMapLoadFail() {

        }

    });
}
public void ShowPopup (View v) {
    TextView txtclose;
    Button otButton;
    Button sudButton;
    Button infobutton;
    myDialog.setContentView(R.layout.popup);
    txtclose = (TextView) myDialog.findViewById(R.id.txtclose);
    infobutton = (Button) myDialog.findViewById(R.id.info);
    otButton = (Button) myDialog.findViewById(R.id.Ot);
    sudButton = (Button) myDialog.findViewById(R.id.Sud);
    txtclose.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            myDialog.dismiss();
        }
    });
    otButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            firtsSt = nameStation;
            myDialog.dismiss();
        }
    });

    sudButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            secSt = nameStation;
            ShortestPath.GraphFind(firtsSt,secSt);
            myDialog.dismiss();
        }
    });

    infobutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            myDialog.dismiss();
            ShowInfo(null);
        }
    });

    myDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    myDialog.show();
}

public void ShowTime (int dist) {
    Toast.makeText(getApplicationContext(), dist + "Минут", Toast.LENGTH_SHORT).show();
}

public void ShowInfo (View v) {
    TextView txtcloseinf;
    myDialog.setContentView(R.layout.station_inf);
    metronameinf = (TextView) myDialog.findViewById(R.id.metronameinf);
    metronameinf.setText(nameStation);
    infoDesc = (TextView) myDialog.findViewById(R.id.infoDesc);
    infoDesc.setText(stationDesc);
    txtcloseinf = (TextView) myDialog.findViewById(R.id.txtcloseinf);
    txtcloseinf.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            myDialog.dismiss();
        }
    });
    myDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    myDialog.show();
}

}

И класс который находит самый короткий путь. В него я отправляю начальную и конечную станцию ShortestPath.GraphFind(firtsSt,secSt); И после прогона алгоритма он находится время между этими станциями и отправляет обратно в метод ShowTime

MarkLayerTestActivity c1 = new MarkLayerTestActivity();
c1.ShowTime(EndDis);

И уже в ShowTime я хочу вызвать всплывающее сообщение:

public void ShowTime (int dist) {
    Toast.makeText(getApplicationContext(), dist + "Минут", Toast.LENGTH_SHORT).show();
}

Но получаю ошибку:

E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NullPointerException
    at android.content.ContextWrapper.getApplicationContext(ContextWrapper.java:109)
    at com.onlylemi.mapview.MarkLayerTestActivity.ShowTime(MarkLayerTestActivity.java:130)

А если делать через System.out.printf(" Итог: (%d) Минут", dist); то все работает.


Ответы (0 шт):