J'ai une activité Android simple qui devrait présenter un certain statut à la fois sur une carte et sous forme textuelle.Inflate mapview deuxième fois jette l'exception
Je l'ai fait comme deux mises en page que je permute avec setContentView(). Au début, cela fonctionne bien, afficher la carte. Je peux ensuite passer à l'affichage des textes en appuyant sur le bouton de menu et en sélectionnant Affichage texte. Mais quand je veux revenir en arrière pour mapper le setContentView (R.layout.main); (cette disposition ne contient qu'une MapView et une disposition linéaire) émet l'exception suivante:
android.view.InflateException: Binary XML file line #7:
Error inflating class <unknown>
Vous avez des idées? Je suis tout à fait nouveau pour le développement Android, donc je ne sais pas avec certitude que c'est la meilleure façon de résoudre le problème.
listing Source:
maptest.java:
public class maptest extends MapActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MapView mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
MapController mapController = mapView.getController();
mapController.setCenter(new GeoPoint((int)(65.319416667*1000000),
(int)(18.073833333*1000000)));
mapController.setZoom(8);
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
//@Override
protected boolean isRouteDisplayed() {
return false;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.map_view:
try{
setContentView(R.layout.main);
}
catch (Exception e) {
System.out.println("Error");
System.out.println(e.toString());
}
return true;
case R.id.text_view:
setContentView(R.layout.statustext);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
Main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
statustext.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView android:id="@+id/TextView01" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="Status text"></TextView>
</LinearLayout>
manifeste:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.csr.maptest"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".maptest"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</manifest>
menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/text_view"
android:title="Text view" />
<item android:id="@+id/map_view"
android:title="Map view" />
</menu>
Avez-vous savoir comment résoudre ce problème? – dineth