2016-08-02 13 views
0

Ich erstelle (oder versuche) ein Warndialogfeld, das angezeigt wird, wenn ein Benutzer auf ein Video klickt. Wenn es einen gespeicherten Wiederaufnahme-Spot gibt, haben sie die Wahl um die Aktion fortzusetzen, neu zu beginnen oder abzubrechen. Da ich die Fortsetzungszeit in den Dialog einschließen möchte (z. B. "Fortsetzen Wiedergabe von 08:32")Warnungsdialogfeld mit Array-Adapter erfasst keine Klicks

Der Dialog erscheint mit den richtigen Elementen, korrekt formatiert, aber nichts passiert, wenn geklickt wird. Ich frage mich, wo ich falsch gelaufen bin.

Java-Code:

final ArrayAdapter<String> itemVals = new ArrayAdapter<>(Docket.CURRENT_CONTEXT, 
     R.layout.adapter_simple_list_item, R.id.list_item); 

String optionStartBeginning = getString(R.string.media_play_no_resume); 
itemVals.add(optionStartBeginning); 

if (CastingBridge.getHasResume()) { 
    String optionResume = "Resume playback from "+ StringFormatter.intMsTimeToString(CastingBridge.RESUME_TIME); 
    itemVals.add(optionResume); 
} 

itemVals.add(getString(R.string.cancel)); 

AlertDialog.Builder builder = new AlertDialog.Builder(Docket.CURRENT_CONTEXT); 
builder.setTitle(R.string.resume_offer_title) 
     .setAdapter(itemVals, new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int which) { 
       Log.i(TAG, "onClick: Chosen idx is "+ which); 
      } 
     }).setCancelable(true); 

AlertDialog alert = builder.create(); 
alert.show(); 

Und die Layout-Datei R.layout.adapter_simple_list_item:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:orientation="vertical"> 

    <com.rey.material.widget.TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:focusable="false" 
     style="@style/Material.Drawable.Ripple.Touch.MatchView" 
     app:rd_enable="true" 
     android:id="@+id/list_item" 
     android:text="@string/test_string" 
     android:paddingTop="20dp" 
     android:paddingBottom="20dp" 
     android:paddingLeft="24dp" 
     android:paddingRight="24dp" 
     android:textSize="18sp" /> 

</LinearLayout> 

Das einzige, was auf Klick geschieht, wird dies in der logcat gedruckt:

D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN 

Beliebig eklatante Fehler, die mir nicht bewusst sind? Vielen Dank im Voraus für alle Antworten.

Antwort

1

Editted:

Dieser Code

Java-Code funktioniert:

final ArrayAdapter<String> itemVals = new ArrayAdapter<String>(_A, 
        R.layout.check, R.id.list_item); 

      String optionStartBeginning = "No resaume"; 
      itemVals.add(optionStartBeginning); 

     /* if (CastingBridge.getHasResume()) { 
       String optionResume = "Resume playback from Here"; 
       itemVals.add(optionResume); 
      }*/ 

      itemVals.add("Cancel"); 

      AlertDialog.Builder builder = new AlertDialog.Builder(_A); 
      builder.setTitle("Simple") 
        .setAdapter(itemVals, new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialog, int which) { 
          Log.i("", "onClick: Chosen idx is "+ which); 
         } 
        }).setCancelable(true); 

      AlertDialog alert = builder.create(); 
      alert.show(); 

Layout-Datei:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <TextView 
     android:id="@+id/list_item" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:focusable="false" 
     android:paddingBottom="20dp" 
     android:paddingLeft="24dp" 
     android:paddingRight="24dp" 
     android:paddingTop="20dp" 
     android:text="Text" 
     android:textSize="18sp" /> 

</LinearLayout> 

ich mit diesem obigen Code überprüft stehen ganze es funktioniert

+0

Immer noch keine Reaktion auf das Click-Ereignis, außer "D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN" in der Logcat :( – mwieczorek

+0

Können Sie versuchen, Default TextView verwenden – MathaN

+0

Gleiches Ergebnis (oder das Fehlen davon) mit Standard-TextView – mwieczorek

0

Ich würde versuchen, die fokussierbar Attribut entfernen

android:focusable="false" 

oder sie schließlich auf "true"

+0

Ich habe versucht, es zu wahr, falsch setzen und sie alle zusammen, immer noch das gleiche Problem zu entfernen. Die einzige Sache, die passiert, ist "D/ViewRootImpl: ViewPostImeInputStage ACTION_DOWN" zeigt sich in der Logcat – mwieczorek

Verwandte Themen