2010-03-04 107 views
2

在這裏我想到了繞圈圈。從主要活動(按鈕)啓動mapview

我有一個活動叫做定位;

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; 
} 
} 

然後,只要我點擊按鈕,我就會收到一個力量。

我在我的清單中有正確的'uses-library'標籤;

<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)); 
     } 

但是那不是我想做的事,我想我自己 - 這樣我可以添加覆蓋等等。但它確實證明權限設置正確,並且lib在那裏。

當應用程序FC是意外的DEX錯誤時,logcat錯誤。

任何人都可以在這裏指出正確的方向嗎?

回答

0

好吧,我發現問題。出於某種原因,我有谷歌apis,然後在eclipse中我的buildpath/lib列出的maps.jar。清理它,現在按預期工作。

1

在你的displayMap您的onCreate,你忘了調用超類

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 post

+0

即便如此做,但它仍然強行關閉。我將在下面添加更多信息。 – Mark 2010-03-07 13:54:33