2016-12-05 10 views
-2

私はアンドロイドプログラミングの新機能で、インターネットのどこかからこのスニペットを受け取り、「getActivity()を解決できません」というメッセージが表示されましたが、私はgetApplicationContext関数。問題なく実行するにはどうすればよいですか?GoogleオートコンプリートではgetActivity()を解決できません

public class MapsActivity extends FragmentActivity implements OnMapReadyCallback, DirectionFinderListener { 

private GoogleMap mMap; 
private Button btnFindPath; 
//private EditText etOrigin; 
//private EditText etDestination; 
private List<Marker> originMarkers = new ArrayList<>(); 
private List<Marker> destinationMarkers = new ArrayList<>(); 
private List<Polyline> polylinePaths = new ArrayList<>(); 
private ProgressDialog progressDialog; 



@Override 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_maps); 
    // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
      .findFragmentById(R.id.map); 
    mapFragment.getMapAsync(this); 
    AutoCompleteTextView etOriginView = (AutoCompleteTextView) findViewById(R.id.etOrigin); 
    etOriginView.setAdapter(new PlacesAutoCompleteAdapter(getActivity(), R.layout.autocomplete_list_item)); 
    etOriginView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
             @Override 
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
              // Get data associated with the specified position 
              // in the list (AdapterView) 
              String description = (String) parent.getItemAtPosition(position); 
              Toast.makeText(getActivity(), description, Toast.LENGTH_SHORT).show(); 
             } 
            }); 

    btnFindPath = (Button) findViewById(R.id.btnFindPath); 
    //etOrigin = (EditText) findViewById(R.id.etOrigin); 
    //etDestination = (EditText) findViewById(R.id.etDestination); 

    btnFindPath.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      sendRequest(); 
     } 
    }); 
} 

PlacesAutoCompleteAdapterクラス

class PlacesAutoCompleteAdapter extends ArrayAdapter<String> implements Filterable { 

ArrayList<String> resultList; 

Context mContext; 
int mResource; 

PlaceAPI mPlaceAPI = new PlaceAPI(); 

public PlacesAutoCompleteAdapter(Context context, int resource) { 
    super(context, resource); 

    mContext = context; 
    mResource = resource; 
} 

@Override 
public int getCount() { 
    // Last item will be the footer 
    return resultList.size(); 
} 

@Override 
public String getItem(int position) { 
    return resultList.get(position); 
} 

@Override 
public Filter getFilter() { 
    Filter filter = new Filter() { 
     @Override 
     protected FilterResults performFiltering(CharSequence constraint) { 
      FilterResults filterResults = new FilterResults(); 
      if (constraint != null) { 
       resultList = mPlaceAPI.autocomplete(constraint.toString()); 

       filterResults.values = resultList; 
       filterResults.count = resultList.size(); 
      } 

      return filterResults; 
     } 

     @Override 
     protected void publishResults(CharSequence constraint, FilterResults results) { 
      if (results != null && results.count > 0) { 
       notifyDataSetChanged(); 
      } 
      else { 
       notifyDataSetInvalidated(); 
      } 
     } 
    }; 

    return filter; 

} 

}

すべてのヘルプは、事前に感謝を歓迎です! 私のGoogle Places API Webサービスは、100%のエラーがあることを示しているため、アダプタに何か問題があることを意味していますか?試してみてくださいMapsActivity.this

+0

のinsted。すでに 'Activity'の中にいますので、' getActivity() 'を呼び出すのは意味がありません。代わりに 'this'をどうですか? –

答えて

0

getActivity()を使用すると、コードの各行を理解せずにペーストをコピーするとき、あなたが得るものです

関連する問題