3

로딩 작업이 완료되면 즉시 조각을 클릭하고 싶습니다.PlaceAutocompleteFragment : 자동으로 열림 SearchView

조각의 정의는 다음과 같습니다

<fragment 
    android:id="@+id/place_autocomplete_fragment" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment" 
    /> 

나는이

fragment = findViewById(R.id.place_autocomplete_fragment); 

    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      fragment.performClick(); 
     } 
    }, 1000); 

일을 시도했지만 그것은 일을 일부러.

조각을 자동으로 클릭하는 방법이 있습니까?

편집 : 내 경우는, 조각은 당신은 <fragment>에 클릭 할 수 없습니다

//PlaceAutoComplete Search Implementation 
    PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment) 
      getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment); 


    autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() { 
     @Override 
     public void onPlaceSelected(Place place) { 
      Log.i(String.valueOf(this), "Place: " + place.getName() + "\nID: " + place.getId()); 
      String placeId = place.getId(); 
      try { 
       Intent intent = new Intent(PlaceSearch.this, PlaceDetailsFromSearch.class); 
       Bundle extras = new Bundle(); 
       extras.putString("placeID", placeId); 
       intent.putExtras(extras); 
       startActivity(intent); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 

     @Override 
     public void onError(Status status) { 
      Log.i(String.valueOf(this), "An error occurred: " + status); 
     } 
    }); 
+0

당신이 무엇을 클릭 후 일어날 것으로 예상됩니까? – azizbekian

+0

이 비디오를 확인하십시오 https://www.youtube.com/watch?v=9RfQOrSlqPs&feature=youtu.be –

+0

필자가 수동으로 조각을 클릭하고 싶지는 않습니다. –

답변

3

에 의해 팽창된다.

클릭 이벤트는 View에만있을 수 있습니다. 조각은 이 아니며View이 아닙니다.

조각이 부 풀리는 View을 클릭 할 수 있습니다.

@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 

    // some `View` from your fragment 
    View searchView = view.findViewById(R.id.searchView); 
    // Dispatch a click event to `searchView` as soon as that view is laid out 
    searchView.post(() -> searchView.performClick()); 
} 

업데이트

당신이, 당신은 당신의 활동에 이런 일을 할 수있는 플레이 서비스 (따라서 당신이 소스가없는)에서이다 PlaceAutocompleteFragment를 사용하고 있기 때문에 :

final PlaceAutocompleteFragment autocompleteFragment = (PlaceAutocompleteFragment) getFragmentManager() 
     .findFragmentById(R.id.place_autocomplete_fragment); 

final View root = autocompleteFragment.getView(); 
root.post(new Runnable() { 
    @Override 
    public void run() { 
     root.findViewById(R.id.place_autocomplete_search_input) 
       .performClick(); 
    } 
}); 
+0

안녕하세요, 코드를 업데이트했습니다. 조각을 부 풀리는 방법이 포함됩니다. 어떻게 참조 할 수 있는지 모르겠다./ –

+0

내가 한 일을 시도했지만 "람다 식을이 언어 수준에서 사용할 수 없다"는 오류가 발생합니다. –

+1

@GautamHans가 업데이트되었습니다. – azizbekian

관련 문제