запуск просмотра карты из основной активности (кнопка) - PullRequest
2 голосов
/ 04 марта 2010

Мне кажется, что я ходил кругами.

У меня есть действие под названием Locate;

public class Locate extends Activity {

public static String lat;
public static String lon;
public static String number;

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.locate);

    final Button buttonMaps = (Button) findViewById(R.id.ButtonMaps);
    buttonMaps.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
         Toast.makeText(getBaseContext(), "Button Pressed", Toast.LENGTH_SHORT).show();


        try {
         Intent i = new Intent(getBaseContext(), displayMap.class);
         i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         startActivity(i);
         }
         catch (ActivityNotFoundException e) {
          Toast.makeText(getBaseContext(), "Activity Not Found", Toast.LENGTH_SHORT).show(); 
         }



    }});

// Toast.makeText(getBaseContext(), "lat: " + lat + " long: " + lon + " from: " + testname, Toast.LENGTH_LONG).show();
}

Если я превращаю класс displayMap в обычное действие и просто отображаю всплывающее сообщение, подтверждающее его загрузку - тогда он работает нормально.

Если я это сделаю, хотя;

public class displayMap extends MapActivity 
{    
/** Called when the activity is first created. */
public void onCreate()
{

    setContentView(R.layout.displaymap);
    Toast.makeText(getBaseContext(), "Display Map", Toast.LENGTH_SHORT).show();
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}

Затем, как только я нажму на кнопку, я закрою силу.

В моем манифесте указан правильный тег «использованная библиотека»;

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
<uses-library android:name="com.google.android.maps" />

Я не получаю то, что просто принудительно закрывается каждый раз, когда я пытаюсь загрузить его.

Если я сделаю этот обработчик onClick, он запустит работающий googlemaps / mapview по умолчанию

        public void onClick(View v) {
         Toast.makeText(getBaseContext(), "Button Pressed", Toast.LENGTH_SHORT).show();

         Uri uri=Uri.parse("geo:"+Locate.lat+","+Locate.lon);
         StartActivity(new Intent(Intent.ACTION_VIEW, uri));
         }

Но это не то, что я пытаюсь сделать, я хочу свою собственную - чтобы я мог добавить наложения и т. Д. К ней. Но это доказывает, что разрешение установлено правильно и что библиотека есть.

Ошибка logcat, когда FC приложения является непредвиденной ошибкой DEX.

Может ли кто-нибудь указать здесь правильное направление?

Ответы [ 2 ]

1 голос
/ 04 марта 2010

В вашем onCreate в displayMap вы забыли вызвать суперкласс

public class displayMap extends MapActivity 
{    
/** Called when the activity is first created. */
public void onCreate()
{
    super.onCreate(icicle); /************* Line to add ********/
    setContentView(R.layout.displaymap);
    Toast.makeText(getBaseContext(), "Display Map", Toast.LENGTH_SHORT).show();
}

Также getBaseContext() не рекомендуется - Используйте getContext() или this

Подробнее в этом сообщении stackoverflow

0 голосов
/ 07 марта 2010

Хорошо, я нашел проблему. По какой-то причине у меня был google apis, а затем файл maps.jar, указанный в моем buildpath / lib в eclipse. Вычистил и теперь работает как положено.

...