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

をやって試してみましたが、それは仕事をdidntの。

フラグメントを自動的にクリックする方法はありますか?

EDIT:私の場合は 、断片は、あなたが<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

によって膨張されます。

Clickイベントは、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、updated。 – azizbekian

関連する問題