1

Hier habe ich eine AutoCompleteTextView und ein Bild sehen Sie, s ein Pfeil, der direkt rechts von dieser AutoCompleteTextView platziert ist. Wenn ich auf diesem Bild Symbol klicken ich diese AutoCompleteTextView zu sein in editierbare Form benötigen bedeutet die gleiche Wirkung, wenn wir direkt in diesem AutoCompleteTextView berührenIch brauche AutoCompleteTextView in editierbaren Format beim Klicken auf Bildsymbol

<AutoCompleteTextView 
      android:background="@android:color/transparent" 
      android:id="@+id/auto" 
      android:textStyle="bold" 
      android:hint="Select Location" 
      android:textColor="#ffffff" 
      android:layout_width="wrap_content" 
      android:layout_marginTop="10dp" 
      android:layout_marginBottom="10dp" 
      android:layout_height="match_parent" 
      android:layout_alignParentEnd="true" 
      android:layout_alignParentRight="true" 
      android:dropDownWidth="match_parent"/> 

      <ImageView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:onClick="dropclick" 
       android:src="@mipmap/ic_keyboard_arrow_down_black_24dp"/> 

</android.support.v7.widget.Toolbar> 
+0

ist das wonach Sie suchen? https://developer.android.com/reference/android/widget/AutoCompleteTextView.html#attr_android:dropDownAnchor – Ivan

+0

Sie möchten eine 'AutoCompleteTextView' mit einem Spinner ?? denn wenn ja dann habe ich den ganzen Code geschrieben wie ich ihn in meinem Projekt implementiert habe. –

Antwort

0

Sie EditSpinner auto complete Spinner lib verwenden können.

es In der Gradle:

compile 'com.reginald:editspinner:1.0.0' 

die Ansicht auf Ihre XML-Datei hinzufügen:

<com.reginald.editspinner.EditSpinner 
    android:id="@+id/autocomplete" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:dropDownDrawable="@mipmap/ic_keyboard_arrow_down_black_24dp" 
    app:dropDownDrawableSpacing="35dp" /> 

Ihren Adapter vor:

zu Ihrem EditSpinner
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, R.layout.spinner_item, itemList); 

Set Adapter:

autoCompleteOperationDetail.setAdapter(operationDetailArrayAdapter); 
0

Antwort von Quessema Aroua ist gut, aber hier ist, was Sie ohne eine Bibliothek tun können.
Implementieren Sie diesen Code in XML.

<AutoCompleteTextView 
      android:layout_width="0dp" 
      android:layout_height="30dp" 
      android:hint="@string/source" 
      android:id="@+id/actv5" 
      app:layout_constraintTop_toBottomOf="@+id/actv4" 
      app:layout_constraintLeft_toLeftOf="parent" 
      app:layout_constraintRight_toRightOf="parent" 
      android:background="@drawable/side_nav_bar" 
      android:textAlignment="center" 
      android:gravity="center" 
      android:layout_marginTop="50dp" 
      android:dropDownHeight="155dp" 
      android:cursorVisible="false"/> 
     <ImageView 
      android:layout_width="35dp" 
      android:layout_height="35dp" 
      android:id="@+id/imv2" 
      android:src="@drawable/ic_keyboard_arrow_down_black_24dp" 
      app:layout_constraintTop_toTopOf="@+id/actv5" 
      app:layout_constraintBottom_toBottomOf="@+id/actv5" 
      app:layout_constraintRight_toRightOf="@+id/actv5" 
      /> 

können Sie wählen, was Layout, das Sie brauchen, aber mir ist ConstraintLayout.
Und das in YourActivity.java

locnames = getResources().getStringArray(R.array.Loc_names); 
    final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(
        this, android.R.layout.simple_spinner_dropdown_item, 
        locnames); 

      autoText1 =(AutoCompleteTextView) findViewById(R.id.actv4); 
      autoText1.setAdapter(arrayAdapter); 
      autoText1.setThreshold(1); 
      autoText1.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
        //autoText1.showDropDown(); 
        hideKeyBoard(view); 
        //String selection = (String) parent.getItemAtPosition(position); 
        selected = position; 
       } 
      }); 
      /*autoText1.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(final View arg0) { 

        autoText1.showDropDown(); } 
      });*/ 

      ImageView imageView = (ImageView) findViewById(R.id.imv1); 
      imageView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(final View arg0) { 

        autoText1.showDropDown(); } 
      }); 

Außerdem sollten Sie einen String von locnames wie in Mine in strings.xml wie dieses Set-up:

<string-array name="Loc_names"> 

     <item>India</item> 
     <item>America</item> 
     <item>Germany</item> 
     <item>Russia</item> 
     <item>Australia</item> 
     <item>China</item> 
</string-array> 

Der Nachrichtenteil in Code von YourActivity. Java zeigt hier den gleichen Pop-up/Spinner, indem Sie irgendwo auf die AutoCompleteTextView klicken, die die Notwendigkeit der Verwendung einer ImageView (Pfeil) entfernt, aber Sie wollen eine ImageView deshalb habe ich diesen Code eine Nachricht/Kommentar gemacht.

Da ich dies direkt von meinem Projekt kopiert habe, sollten Sie alle IDs/Namen nach Ihnen ersetzen.

Einige Bilder als Referenz

  1. Das ist normal AutoCompleteTextView.

enter image description here

  1. Dies ist AutoCompleteTextView mit einem Spinner.

enter image description here

  1. Dies ist AutoCompleteTextView mit etwas Text eingegeben und Text im Spinner gefiltert. enter image description here
Verwandte Themen