Come modificare Android Snackbar contenente il button LayoutInflater e editText

Il mio progetto ora è come fare una Snackbar visualizzata nella parte inferiore dello schermo. Il Snackbar contiene con editText e tre pulsanti per le categorie di selezione. Utilizzo LayoutInflater e segui questi codice per il mio script, ed è il lavoro. Il mio problema è ora, come get risposta quando l'utente fa clic sul button? Qui il mio codice

@Override public void onClick(View v) { CoordinatorLayout linearLayout = (CoordinatorLayout)findViewById(R.id.coordinatorLayout); final Snackbar snackbar = Snackbar.make(linearLayout, "", Snackbar.LENGTH_INDEFINITE); Snackbar.SnackbarLayout layout = (Snackbar.SnackbarLayout) snackbar.getView(); // Inflate your custom view with an Edit Text LayoutInflater objLayoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View snackView = objLayoutInflater.inflate(R.layout.custom_snac_layout, null); // custom_snac_layout is your custom xml layout.addView(snackView, 0); snackbar.show(); } 

e qui il mio layout snacbar.xml

  • Android - controllare il clic del button dell'auricolare
  • GoogleApiClient.isConnected () restituisce sempre falso
  • Thread.Sleep () Android UI
  • BroadcastReceiver per events di calendario Android
  • come get il valore della voce selezionata Spinner alla string?
  • Crea versioni gratuite / pagate di applicazione da uno stesso codice
  •   <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:layout_marginTop="8dp" android:layout_marginBottom="8dp" android:id="@+id/event_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:scrollHorizontally="false" android:hint="@string/type_your_message" android:inputType="textNoSuggestions" android:maxLines="4" android:singleLine="false" android:textSize="18sp" android:paddingLeft="4dp" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="match_parent" android:orientation="horizontal"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/btn_mapel" android:onClick="mapel" android:layout_gravity="bottom|right" android:layout_marginBottom="@dimen/fab_margin_bottom" android:layout_marginRight="@dimen/fab_margin_right" android:src="@drawable/ic_image_edit" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:layout_marginBottom="@dimen/fab_margin_bottom" android:layout_marginRight="@dimen/fab_margin_right" android:src="@drawable/ic_image_edit" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:layout_marginBottom="@dimen/fab_margin_bottom" android:layout_marginRight="@dimen/fab_margin_right" android:src="@drawable/ic_image_edit" /> </LinearLayout> 

  • android - Avviso errato inviato - Imansible espandere RemoteViews per: StatusBarNotification
  • L'applicazione si blocca (a volte) con segnale fatale 11 (SIGSEGV), codice 1
  • Android - OnDateChangedListener - come si imposta questo?
  • Proguard mantenere i nomi delle variables del metodo di interface
  • Come aprire un nuovo browser da WebViewClient?
  • L'applicazione di notifica Android non funziona correttamente
  • 4 Solutions collect form web for “Come modificare Android Snackbar contenente il button LayoutInflater e editText”

    ecco la fonte necessaria per attuare l'ascolto dei pulsanti sul layout personalizzato dello snackbar.

     @Override public void onClick(View v) { CoordinatorLayout linearLayout = (CoordinatorLayout)findViewById(R.id.coordinatorLayout); final Snackbar snackbar = Snackbar.make(linearLayout, "", Snackbar.LENGTH_INDEFINITE); Snackbar.SnackbarLayout layout = (Snackbar.SnackbarLayout) snackbar.getView(); // Inflate your custom view with an Edit Text LayoutInflater objLayoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View snackView = objLayoutInflater.inflate(R.layout.custom_snac_layout, null); // custom_snac_layout is your custom xml // button id for snackbar Button button_mapel = (Button) snackView.findViewById(R.id.btn_mapel); // perform button click listener button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // here perform your button click task } }); layout.addView(snackView, 0); snackbar.show(); } 

    Seguire questa documentazione

    https://developer.android.com/training/snackbar/action.html

     public class MyUndoListener implements View.OnClickListener{ &Override public void onClick(View v) { // Code to undo the user's last action } } 

    Ora per setAction ()

     Snackbar mySnackbar = Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_archived, Snackbar.LENGTH_SHORT); mySnackbar.setAction(R.string.undo_string, new MyUndoListener()); mySnackbar.show(); 

    Prova questo,

     Button btn_feed_back = (Button)snackView.findViewById(R.id.feedback); btn_feed_back.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); 

    Devi get l'id del tuo Button . E deve impostare clickListener .

    Devi solo sostituire il tuo codice con questo.

    Ho messo l'ascoltatore su btn_mapel , puoi mettere qualsiasi altro button in base al tuo requisito.

    Prova questo.

      @Override public void onClick(View v) { CoordinatorLayout linearLayout = (CoordinatorLayout)findViewById(R.id.coordinatorLayout); final Snackbar snackbar = Snackbar.make(linearLayout, "", Snackbar.LENGTH_INDEFINITE); Snackbar.SnackbarLayout layout = (Snackbar.SnackbarLayout) snackbar.getView(); // Inflate your custom view with an Edit Text LayoutInflater objLayoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View snackView = objLayoutInflater.inflate(R.layout.custom_snac_layout, null); // custom_snac_layout is your custom xml Button mapelBt = (Button)snackView.findViewById(R.id.btn_mapel); mapelBt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Get your button click callback here } }); layout.addView(snackView, 0); snackbar.show(); } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.