0

Google지도가 표시되는 e 대화/alertDialog를 만들고 싶습니다.대화 상자에 Google지도를 추가하는 방법. 대화 상자와지도가 모두 나타나지 않습니다.

public class PaginaRisultati extends ExpandableListActivity { 
    //Initialize variables 
     private static final String STR_CHECKED = " has Checked!"; 
     private static final String STR_UNCHECKED = " has unChecked!"; 
     private int ParentClickStatus=-1; 
     private int ChildClickStatus=-1; 
     private ArrayList<Parent> parents; 
     private String username; 
     private static final int RECOVERY_DIALOG_REQUEST = 1; 
     private String regione; 
     private String provincia; 
     private String[] tag; 
     private final static int MAP_MESSAGE_ID = 1; 
     private final static int PROGRESS_DIALOG_ID = 1; 
     private String posizione; 
     private String azienda; 
     final Context context = this; 
     MapView mMapView; 
     GoogleMap mMap; 
     Marker mark; 
     Bundle bundle; 
     double lat; 
     double lng; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     bundle=savedInstanceState; 

     //setContentView(R.layout.prova_risultati); 
     MyDBHelper dbHelper2 = new MyDBHelper(this,"JobAroundU_DB", null, 1); 
     final SQLiteDatabase db2; 


     Intent dati = getIntent(); 

     String pkg = getPackageName(); 
     regione = dati.getStringExtra(pkg+".Regione"); 
     provincia = dati.getStringExtra(pkg+".Provincia"); 
     tag = dati.getStringArrayExtra(pkg+".Tag"); 
     username=dati.getStringExtra(pkg+".Username"); 
     GetAnnunciThread gat= new GetAnnunciThread(regione, provincia, tag); 
     gat.run(); 
     gat.start(); 
     try { 
      gat.join(); 
     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 



     //controllo se risultati esistono --> se non esistono stampo messaggio di errore 

     Resources res = this.getResources(); 
     Drawable devider = res.getDrawable(R.drawable.transparent); 
     Drawable group_indicator = res.getDrawable(R.drawable.group_indicator); 
     // Set ExpandableListView values 
     getExpandableListView().setGroupIndicator(group_indicator); 
     getExpandableListView().setDivider(devider); 
     getExpandableListView().setChildDivider(devider); 
     getExpandableListView().setDividerHeight(15); 
     registerForContextMenu(getExpandableListView()); 

     //Creating static data retrived from the result of the thread in arraylist 
     parents = gat.annuncitrovati; 

     if (parents.isEmpty()) { 
      LayoutInflater inflater = getLayoutInflater(); 
       View layout = inflater.inflate(R.layout.toast_layout, (ViewGroup) findViewById(R.id.toast_layout_root)); 
       ImageView image = (ImageView) layout.findViewById(R.id.immagine); 
       image.setImageDrawable(getResources().getDrawable(R.drawable.icon_25761)); 
       TextView text = (TextView) layout.findViewById(R.id.ToastTV); 
       text.setText("La ricerca non ha prodotto risultati!!"); 

       Toast toast = new Toast(getApplicationContext()); 
       toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); 
       toast.setDuration(Toast.LENGTH_SHORT); 
       toast.setView(layout); 
       toast.show(); 
       //richiamo activity precedente (la pagina di ricerca del lavoro) 

     } 

     db2=dbHelper2.getWritableDatabase(); 
     //metto nella view e stampo a video 
     // Check for ExpandableListAdapter object 
     if (this.getExpandableListAdapter() == null)  { 
        //Create ExpandableListAdapter Object 
        final MyExpandableListAdapter mAdapter = new MyExpandableListAdapter(); 
        // Set Adapter to ExpandableList Adapter 
        this.setListAdapter(mAdapter); 
       } 
       else 
       { 
        // Refresh ExpandableListView data 
        ((MyExpandableListAdapter)getExpandableListAdapter()).notifyDataSetChanged(); 

       } 

    } 




    private class MyExpandableListAdapter extends BaseExpandableListAdapter 
    { 
     private LayoutInflater inflater; 
     protected SQLiteOpenHelper dbHelper2 =new MyDBHelper(PaginaRisultati.this,"JobAroundU_DB", null, 1); 

     public MyExpandableListAdapter() 
     { 
      // Create Layout Inflator 
      inflater = LayoutInflater.from(PaginaRisultati.this); 
     } 


     // This Function used to inflate parent rows view 

     @Override 
     public View getGroupView(int groupPosition, boolean isExpanded, 
       View convertView, ViewGroup parentView) 
     { 
      final Parent parent = parents.get(groupPosition); 

      // Inflate grouprow.xml file for parent rows 
      convertView = inflater.inflate(R.layout.grouprow, parentView, false); 

      // Get grouprow.xml file elements and set values 
      ((TextView) convertView.findViewById(R.id.text1)).setText(parent.getPosizione()); 
      ((TextView) convertView.findViewById(R.id.TVData)).setText(parent.getAzienda()); 
      ImageView image=(ImageView)convertView.findViewById(R.id.image_tag); 
      image.setImageResource(R.drawable.icon_21039); 
      //ImageView rightcheck=(ImageView)convertView.findViewById(R.id.rightcheck); 
      final ImageButton imgbtt = (ImageButton)convertView.findViewById(R.id.imageButton1); 
      imgbtt.setFocusable(false); 

      //metto stellina colorata se l'annuncio tra i preferiti e se lo metto a false la possibilità di inseririlo tra di essi, evitando cosi' doppioni 
      SQLiteDatabase db2=dbHelper2.getWritableDatabase(); 
      String sqlPref = "SELECT idDBJobs FROM MyPreferences"; 
      Cursor cursor = db2.rawQuery(sqlPref, null); 
      boolean prefAnn=false; 
      while (cursor.moveToNext()){ 
       if(cursor.getString(0).equals(parent.getId())){ 
        imgbtt.setImageResource(R.drawable.yellow_star); 
        prefAnn=true; 
       } 
      } 

      if(prefAnn==false){ 
       imgbtt.setOnClickListener(new OnClickListener(){ 
        @Override 
        public void onClick(View v) { 
         Log.i("preferred job announce", "aggiungi ai preferiti INIZIO "); 
         //preferiti e ricerche recenti sono nel DB SQLite dell'app 
          int num = Integer.parseInt(parent.getId()); 

          String sqlMyPreference="INSERT INTO MyPreferences (Position, Firm, Description, idDBJobs) VALUES ('"+parent.getPosizione()+"', '"+parent.getAzienda()+"', '"+parent.getChildren().get(0).getDescrizione()+"', "+num+");"; 

          SQLiteDatabase db2=dbHelper2.getWritableDatabase(); 
          db2.execSQL(sqlMyPreference); 
          db2.close(); 
          Log.i("preferred job announce", "Aggiunto " +parent.getPosizione()+" nell'azienda "+parent.getAzienda()+" ai preferiti"); 
          imgbtt.setImageResource(R.drawable.yellow_star); 
         } 

       }); 
      } 

      return convertView; 
     } 


     // This Function used to inflate child rows view 
     @Override 
     public View getChildView(int groupPosition, int childPosition, boolean isLastChild, 
       View convertView, ViewGroup parentView) 
     { 
      final Parent parent = parents.get(groupPosition); 
      final Child child = parent.getChildren().get(childPosition); 

      // Inflate childrow.xml file for child rows 
      convertView = inflater.inflate(R.layout.childrow, parentView, false); 

      // Get childrow.xml file elements and set values 
      /***INDIRIZZO***/ 
      ((TextView) convertView.findViewById(R.id.TVTags)).setText(child.getIndirizzo()); 
      ImageView image=(ImageView)convertView.findViewById(R.id.image_tag); 
      image.setImageResource(R.drawable.icon_14236); 

      Button b0 = (Button) convertView.findViewById(R.id.button1); 
      if(child.getIndirizzo().equals("Indirizzo NON presente")){ 
       b0.setVisibility(View.INVISIBLE); 
      } 

      b0.setOnClickListener(new OnClickListener(){ 

       @Override 
       public void onClick(View v) { 
        //recupero indirizzo 
        String indirizzodaconvertire= ""+child.getIndirizzo(); 
        azienda=""+parent.getAzienda(); 
        posizione = ""+parent.getPosizione(); 

        LayoutInflater inflater = getLayoutInflater(); 
        //final View view =inflater.inflate(R.layout.main_mapview, null); 
        final Dialog dialog = new Dialog(context); 
        dialog.setContentView(R.layout.main_mapview); 
        mMapView = (MapView) dialog.findViewById(R.id.mymapview); 
        mMapView.onCreate(bundle); 
         MapsInitializer.initialize(context); 

         if (mMap == null) { 
          mMap = mMapView.getMap(); 
            if (mMap != null) { 
           } 
         } 


         TextView tv= (TextView) dialog.findViewById(R.id.addressName); 
         tv.setText(indirizzodaconvertire); 
         searchPlace(indirizzodaconvertire); 

          dialog.setTitle("MAPPA!!!"); 
          dialog.show(); 




         //} 
       // }); 



        /* Intent i = new Intent(PaginaRisultati.this, SeeAddress.class); 
       i.putExtra(getPackageName()+".Address", indirizzodaconvertire); 
        i.putExtra(getPackageName()+".Azienda",azienda); 
        i.putExtra(getPackageName()+".Posizione", posizione); 

        i.putExtra(getPackageName()+".Regione", regione); 
        i.putExtra(getPackageName()+".Provincia", provincia); 
        i.putExtra(getPackageName()+".Tag", tag); 
        i.putExtra(getPackageName()+".Username", username); 

        startActivity(i);*/ 

        //replaceContentView("aa", i); 
       } 

      }); 
      /***LUOGO LAVORO ****/ 
      ((TextView) convertView.findViewById(R.id.TVLoc_prov)).setText(child.getLuogoLavoro()); 

      /***DESCRIZIONE ****/ 
      ((TextView) convertView.findViewById(R.id.TVLoc_regione)).setText(child.getDescrizione()); 
      ImageView image2=(ImageView)convertView.findViewById(R.id.ImageLoc); 
      image2.setImageResource(R.drawable.icon_16301); 

      /***STIPENDIO ****/ 
      ((TextView) convertView.findViewById(R.id.TWStipendio)).setText(child.getStipendio()); 
      ImageView image3=(ImageView)convertView.findViewById(R.id.ImageStipendio); 
      image3.setImageResource(R.drawable.icon_21213); 

      /***CANDIDATURA CELLULARE ****/ 
      ((TextView) convertView.findViewById(R.id.TWCandCell)).setText(child.getCandidaturaCellulare()); 
      ImageView image4=(ImageView)convertView.findViewById(R.id.ImageCandCell); 
      image4.setImageResource(R.drawable.icon_14583); 

      /**** EMAIL ****/ 
      TextView tv= (TextView) convertView.findViewById(R.id.TWMail); 
      tv.setText(child.getEmail()); 

      ImageView image5=(ImageView)convertView.findViewById(R.id.ImageMail); 
      image5.setImageResource(R.drawable.icon_98); 
      Linkify.addLinks(tv, Linkify.EMAIL_ADDRESSES); 


      /*** BOTTONE YOUTUBE ***/ 
      Button b1 = (Button) convertView.findViewById(R.id.Button01); 

      b1.setOnClickListener(new OnClickListener(){ 

       @Override 
       public void onClick(View v) { 
        if(child.getYT().equals("Video non presente")){ 
         LayoutInflater inflater = getLayoutInflater(); 
         View layout = inflater.inflate(R.layout.toast_layout, (ViewGroup) findViewById(R.id.toast_layout_root)); 
         ImageView image = (ImageView) layout.findViewById(R.id.immagine); 
         image.setImageDrawable(getResources().getDrawable(R.drawable.youtube_notfind)); 
         TextView text = (TextView) layout.findViewById(R.id.ToastTV); 
         text.setText("Video non presente!"); 

         Toast toast = new Toast(getApplicationContext()); 
         toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); 
         toast.setDuration(Toast.LENGTH_SHORT); 
         toast.setView(layout); 
         toast.show(); 
        }else{ 
         //Intent i = new Intent(PaginaRisultati.this, YTActivity.class); 
         Intent i = new Intent(PaginaRisultati.this, YouTubeDialogActivity.class); 
         i.putExtra(getPackageName()+".YTV", child.getYT()); 
         i.addFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP); 
         startActivity(i); 
        } 
       } 

      }); 
      /***BOTTONE visibile solo se possible inviare candidatura via cell****/ 
      Button b = (Button) convertView.findViewById(R.id.candidati); 
      if(child.getCandidaturaCellulare().equals("Candidatura via cellulare possibile")==false){ 
       //nascondo bottone se non e' possibile inviare candidatura 
       b.setVisibility(View.INVISIBLE); 
      } 


      //CODICE PER INVIARE LA MAIL --> apre nuova activity con dati del lavoro--> email destinatario gia' inserita, allegato da scegliere e messaggio da editare 
      b.setOnClickListener(new OnClickListener(){ 

       @Override 
       public void onClick(View arg0) { 

        PersonalDataThread t3 = new PersonalDataThread(username); 
        t3.run(); 
        t3.start(); 

        try { 
         t3.join(); 
        } catch (InterruptedException e) { 
         Log.e("ERROR -PERSONALDATA", ""+e.toString()); 
        } 
        Intent ii= new Intent (PaginaRisultati.this, MailActivity.class); 
         ii.putExtra(getPackageName()+".EmailReceiver", child.getEmail()); 
         ii.putExtra(getPackageName()+".Posizione", parent.getPosizione()); 
         ii.putExtra(getPackageName()+".NomeUser", t3.nomeDB); 
         ii.putExtra(getPackageName()+".CognomeUser", t3.cognomeDB); 
         ii.putExtra(getPackageName()+".EmailSender", t3.mailDB); 
         ii.putExtra(getPackageName()+".Azienda", parent.getAzienda()); 
        startActivity(ii); 
       } 

      }); 

      return convertView; 
     } 


     @Override 
     public Object getChild(int groupPosition, int childPosition) 
     { 
      //Log.i("Childs", groupPosition+"= getChild =="+childPosition); 
      return parents.get(groupPosition).getChildren().get(childPosition); 
     } 

     //Call when child row clicked 
     @Override 
     public long getChildId(int groupPosition, int childPosition) 
     { 
      /****** When Child row clicked then this function call *******/ 

      if(ChildClickStatus!=childPosition) 
      { 
       ChildClickStatus = childPosition; 

      } 

      return childPosition; 
     } 

     @Override 
     public int getChildrenCount(int groupPosition) 
     { 
      int size=0; 
      if(parents.get(groupPosition).getChildren()!=null) 
       size = parents.get(groupPosition).getChildren().size(); 
      return size; 
     } 


     @Override 
     public Object getGroup(int groupPosition) 
     { 
      Log.i("Parent", groupPosition+"= getGroup "); 

      return parents.get(groupPosition); 
     } 

     @Override 
     public int getGroupCount() 
     { 
      return parents.size(); 
     } 

     //Call when parent row clicked 
     @Override 
     public long getGroupId(int groupPosition) 
     { 
      ParentClickStatus=groupPosition; 
      if(ParentClickStatus==0) 
       ParentClickStatus=-1; 
      return groupPosition; 
     } 

     @Override 
     public void notifyDataSetChanged() 
     { 
      // Refresh List rows 
      super.notifyDataSetChanged(); 
     } 

     @Override 
     public boolean isEmpty() 
     { 
      return ((parents == null) || parents.isEmpty()); 
     } 

     @Override 
     public boolean isChildSelectable(int groupPosition, int childPosition) 
     { 
      return true; 
     } 


     /******************* Checkbox Checked Change Listener ********************/ 

     private final class CheckUpdateListener implements OnCheckedChangeListener 
     { 
      private final Parent parent; 

      private CheckUpdateListener(Parent parent) 
      { 
       this.parent = parent; 
      } 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
      { 
       Log.i("onCheckedChanged", "isChecked: "+isChecked); 
       parent.setChecked(isChecked); 

       ((MyExpandableListAdapter)getExpandableListAdapter()).notifyDataSetChanged(); 

       final Boolean checked = parent.isChecked(); 
      } 
     } 
     /***********************************************************************/ 


     @Override 
     public boolean hasStableIds() { 
      // TODO Auto-generated method stub 
      return false; 
     } 


    } 

    public void searchPlace(String inputName) { 
     final String s = inputName; 
     Thread searchThread = new Thread("SerachThread") { 
      @Override 
      public void run() { 
       Message message = mapHandler.obtainMessage(); 

       String addressToSearch = s; 
       addressToSearch = addressToSearch.replace(" ", "%20"); 

       JSONObject addressInfo = getAddressInfo(addressToSearch); 

       try 
       { 
        if (addressInfo != null && addressInfo.getString("status").equals("OK")) { 
         message.obj = addressInfo; 
         mapHandler.sendMessage(message); 

        } 
        else 
         mapHandler.sendEmptyMessage(MAP_MESSAGE_ID); 
       } 
       catch(JSONException e){ 
        mapHandler.sendEmptyMessage(MAP_MESSAGE_ID); 
       } 

       //dismissDialog(PROGRESS_DIALOG_ID);    
       } 
     }; 
     //showDialog(PROGRESS_DIALOG_ID); 
     //searchThread.run(); 

     searchThread.start(); 

     while(searchThread.isAlive()){ 
     } 


    } 

    private final Handler mapHandler = new Handler() { 

     @Override 
     public void handleMessage(Message msg) { 
      if(msg!=null && msg.obj!=null){ 
       JSONObject addressInfo = (JSONObject)msg.obj; 

       try{ 
        lng = ((JSONArray)addressInfo.get("results")).getJSONObject(0).getJSONObject("geometry").getJSONObject("location").getDouble("lng"); 
        lat = ((JSONArray)addressInfo.get("results")).getJSONObject(0).getJSONObject("geometry").getJSONObject("location").getDouble("lat");      
        MarkerOptions mo= new MarkerOptions(); 
        mo.position(new LatLng(lat,lng)) 
        .title(posizione) 
        .snippet(azienda) 
        .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker)); 

        mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(lat,lng), 16.0f)); 
        mark = mMap.addMarker(mo); 
        //onMarkerClick(mark); 
        mMap.setOnMarkerClickListener(new OnMarkerClickListener(){ 

         @Override 
         public boolean onMarkerClick(final Marker marker){ 
           // This causes the marker to bounce into position when it is clicked. 
          if (marker.equals(mark)) { 
           final Handler handler = new Handler(); 
           final long start = SystemClock.uptimeMillis(); 
           Projection proj = mMap.getProjection(); 
           Point startPoint = proj.toScreenLocation(new LatLng(lat,lng)); 
           startPoint.offset(0, -100); 
           final LatLng startLatLng = proj.fromScreenLocation(startPoint); 
           final long duration = 2000; 
           final Interpolator interpolator = new BounceInterpolator(); 
           handler.post(new Runnable() { 
            @Override 
            public void run() { 
             long elapsed = SystemClock.uptimeMillis() - start; 
             float t = interpolator.getInterpolation((float) elapsed/duration); 
             double lng1 = t * lng + (1 - t) * startLatLng.longitude; 
             double lat1 = t * lat + (1 - t) * startLatLng.latitude; 
             marker.setPosition(new LatLng(lat1, lng1)); 
             if (t < 1.0) { 
              // Post again 16ms later. 
              handler.postDelayed(this, 10); 
             } 
            } 
           }); 
          } 
          // We return false to indicate that we have not consumed the event and that we wish 
          // for the default behavior to occur (which is for the camera to move such that the 
          // marker is centered and for the marker's info window to open, if it has one). 
          return false; 
         } 

        }); 


       } 
       catch(JSONException e){ 
        Toast.makeText(context, "Found nothing. Retry!", 
           Toast.LENGTH_SHORT).show(); 
       } 

      }else{ 
       Toast.makeText(context, "Found nothing. Retry!", 
        Toast.LENGTH_SHORT).show(); 
      } 
     } 

    }; 





    @Override 
    protected Dialog onCreateDialog(int id) { 
     switch (id) { 
     case PROGRESS_DIALOG_ID: 
      ProgressDialog progressDialog = new ProgressDialog(this, 
        ProgressDialog.STYLE_SPINNER); 
      progressDialog.setIndeterminate(true); 
      progressDialog.setTitle("GeocodingTest"); 
      progressDialog.setMessage("Searching..."); 
      return progressDialog; 
     default: 
      return null; 
     } 
    } 

    public static JSONObject getAddressInfo(String sAddress) { 
     HttpGet httpGet = new HttpGet("http://maps.google.com/maps/api/geocode/json?address=" + sAddress + "&sensor=false"); 
     HttpClient client = new DefaultHttpClient(); 
     HttpResponse response; 
     StringBuilder stringBuilder = new StringBuilder(); 

     try { 
      response = client.execute(httpGet); 
      HttpEntity entity = response.getEntity(); 
      InputStream stream = entity.getContent(); 
      int b; 
      while ((b = stream.read()) != -1) { 
       stringBuilder.append((char) b); 
      } 
     } catch (ClientProtocolException e) { 
     } catch (IOException e) { 
     } 

     JSONObject jsonObject = new JSONObject(); 
     try { 
      jsonObject = new JSONObject(stringBuilder.toString()); 
      Log.d("Google Geocoding Response", stringBuilder.toString()); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     return jsonObject; 
    } 


    /** 
    //CARICO LA NUOVA ACTIVITY ALL'INTERNO DEL CORPO DEL TAB 
     public void replaceContentView(String id, Intent newIntent) { 
      this.getApplicationContext() 
      View view =this.getApplication().getLocalActivityManager().startActivity("ff", 
        newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) 
        .getDecorView(); 
      this.setContentView(view); 
     } 
    */ 
    } 

이가이다 : 이것은 내 활동

06-15 10:56:32.436: E/AndroidRuntime(1716): FATAL EXCEPTION: main 
06-15 10:56:32.436: E/AndroidRuntime(1716): Process: it.sii.android.jobaroundu, PID: 1716 
06-15 10:56:32.436: E/AndroidRuntime(1716): android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running? 
06-15 10:56:32.436: E/AndroidRuntime(1716):  at android.view.ViewRootImpl.setView(ViewRootImpl.java:536) 
06-15 10:56:32.436: E/AndroidRuntime(1716):  at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259) 
06-15 10:56:32.436: E/AndroidRuntime(1716):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) 
06-15 10:56:32.436: E/AndroidRuntime(1716):  at android.app.Dialog.show(Dialog.java:286) 
06-15 10:56:32.436: E/AndroidRuntime(1716):  at it.sii.android.jobaroundu.PaginaRisultati$MyExpandableListAdapter$2.onClick(PaginaRisultati.java:300) 
06-15 10:56:32.436: E/AndroidRuntime(1716):  at android.view.View.performClick(View.java:4438) 
06-15 10:56:32.436: E/AndroidRuntime(1716):  at android.view.View$PerformClick.run(View.java:18422) 
06-15 10:56:32.436: E/AndroidRuntime(1716):  at android.os.Handler.handleCallback(Handler.java:733) 
06-15 10:56:32.436: E/AndroidRuntime(1716):  at android.os.Handler.dispatchMessage(Handler.java:95) 
06-15 10:56:32.436: E/AndroidRuntime(1716):  at android.os.Looper.loop(Looper.java:136) 
06-15 10:56:32.436: E/AndroidRuntime(1716):  at android.app.ActivityThread.main(ActivityThread.java:5017) 
06-15 10:56:32.436: E/AndroidRuntime(1716):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-15 10:56:32.436: E/AndroidRuntime(1716):  at java.lang.reflect.Method.invoke(Method.java:515) 
06-15 10:56:32.436: E/AndroidRuntime(1716):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
06-15 10:56:32.436: E/AndroidRuntime(1716):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
06-15 10:56:32.436: E/AndroidRuntime(1716):  at dalvik.system.NativeStart.main(Native Method) 

: 나는 대화 상자를 만들고지도보기 그러나 응용 프로그램 충돌이 레이아웃을 부풀려/나에게 다음과 같은 오류를 제공했습니다 레이아웃이 비정상적으로 변경되었습니다

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent" 
    android:orientation="vertical" android:id="@+id/mainLayout"> 
    <LinearLayout android:layout_height="wrap_content" 
     android:id="@+id/buttonLayout" android:layout_width="fill_parent"> 
     <TextView android:id="@+id/addressName" 
      android:layout_height="wrap_content" android:layout_width="fill_parent" 
      android:layout_weight="1" android:inputType="text"></TextView> 
     <!-- <Button android:layout_height="wrap_content" android:id="@+id/searchButton" 
      android:text="Search" android:layout_width="fill_parent" 
      android:onClick="searchPlace" 
      android:layout_weight="3"></Button> --> 

    </LinearLayout> 

    <com.google.android.gms.maps.MapView 
     android:id="@+id/mymapview" 
     android:layout_width="500dp" 
     android:layout_height="500dp" 

     xmlns:map="http://schemas.android.com/apk/res-auto" 

     map:cameraTargetLat="45.070139" 
     map:cameraTargetLng="7.6700892" 
     map:cameraZoom="5" 

     map:mapType="normal" 
     map:uiRotateGestures="false" 
     map:uiScrollGestures="true" 
     map:uiTiltGestures="false" 
     map:uiZoomControls="true" 
     map:uiZoomGestures="false" 
     > 

    </com.google.android.gms.maps.MapView> 



</LinearLayout> 

어디에서 실수가 있습니까? 제발, 제 코드를 수정하고 도와 주실 수 있습니까?

감사

M은

+0

사용하십시오 DialogFragment를 사용하여지도보기를 – Raghunandan

답변

1
android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running? 

당신은 활동이 작성되면

context = this; // initialize in onCreate. this refers to activity context 

활동 컨텍스트를 사용할 수에서 onCreate에서 다음

Context context; //declare it as an instance variable 

이 필요합니다.

가지도를 위해 당신이 DialogFragment

+0

감사를 사용할 수 있습니다 ... 나는 안드로이드 프로그래밍에 새로 온 이후 조각에 DialogFragment과지도를 사용하는 방법을 모르겠어요. .. 일부 코드 게시를 도와 줄 수 있습니까? – user3649608

+0

@ user3649608 전체 코드를 게시 할 수 없습니다. 조각이 맵에 표시되는 링크를 게시합니다. 마찬가지로'DialogFragment'에 대해서도 마찬가지입니다. http://stackoverflow.com/questions/20919048/android-android-view-inflateexception-binary-xml-file-line-8-error-inflatin – Raghunandan