2016-05-05 7 views
0

Ich habe eine Rasteransicht und möchte eine Tastatur anzeigen, wenn der Benutzer auf eine Zelle klickt. Die Eingabe der Tastatur erscheint dann in der Zelle. Ich habe den Code ausprobiert, unter dem ich von Android: show soft keyboard automatically when focus is on an EditText und anderen ähnlichen Fragen bekam. Ich kann die Tastatur jedoch nicht sehen.Anzeige der Soft-Tastatur beim Klicken auf Rasteransicht Zelle

Irgendwelche Ideen dazu?

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View v,int position, long id) { 
      InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
      imm.showSoftInput(gridView, InputMethodManager.SHOW_IMPLICIT); 
     } 
    }); 

Ich habe InputMethodManager.SHOW_FORCED versucht, aber das hat auch nicht geholfen.

Dank

EDIT

Das Zellenlayout für das Gitter ist unten. Ich habe es in einen EditText geändert, aber immer noch keine Tastatur. Es als EditText zu haben, sieht aus Sicht der Benutzeroberfläche nicht gut aus. Im Idealfall war ich der TextView und dann, wenn der Benutzer es klickt, wird es zu einem EditText, damit der Benutzer etwas eingeben kann.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="5dp" > 

<EditText 
     android:id="@+id/grid_item_label" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@+id/celllabel" 
     android:textSize="15px" > 
</EditText> 

Meine Idee ist, dass es als ein Textview bleibt. Die Tastatur öffnet sich und wenn der Benutzer auf einen Buchstaben klickt, schließt sich die Tastatur und ein Buchstabe erscheint in der GridCell. Ist meine Idee möglich?

Dank

+0

Wenn in der Zelle kein 'editiertext 'vorhanden ist, ist es nutzlos, die Tastatur anzuzeigen. Sie können den getippten Buchstaben nicht erhalten. –

+0

Ich werde meine Frage aktualisieren. Vielen Dank! – RNJ

+0

Sie müssen alle 'wrap_content' in' match_parent' von 'EditText' und' LinearLayout' ändern und es erneut versuchen. Prost –

Antwort

1

Ein Vorschlag:

  1. a Erstellen customEditText, können Sie hide the cursor, wenn Sie (machen es wie ein TextView aussieht) wollen.
  2. Optimieren Sie Ihre Zellen-Layout durch die LinearLayout

-Code zu entfernen:

<?xml version="1.0" encoding="utf-8"?> 
<YourCustomEditText xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/grid_item_label" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:text="@+id/celllabel" 
     android:maxLength="1" 
     android:textSize="15px" > 
</YourCustomEditText> 
  1. Verwenden TextWatcher oder focus Schnittstelle die show/hide der Tastatur zu steuern.

Hoffe diese Hilfe!

+0

Danke für die Hilfe @ Tung-d-Nguyen Ich werde jetzt anfangen zu spielen. Eine unmittelbare Frage ist, warum ich denke, ich brauche einen benutzerdefinierten EditText? Kann ich nicht alles nur mit dem Standard EditText machen? – RNJ

+0

@RNJ ist es OK, den Standard zu verwenden. –

Verwandte Themen