0
votes

Comment désactiver le bouton arrière dans l'activité de la bibliothèque externe dans le studio Android?

J'utilise cette bibliothèque: https://github.com/suchox/plicker

Comment désactiver le bouton d'arrêt physique Pour cette activité de cueillette de lieu? p>

Entrez la description de l'image ici p>

Ceci est le code à ouvrir Cette activité: p> xxx pré>

Je sais que c'est comment désactiver le bouton d'arrêt physique en général, mais comment puis-je le faire dans ce cas? P>

@Override
public void onBackPressed() {
    // do nothing because you don't want them to leave when it's pressed
}


6 commentaires

Vous ne voulez pas changer le code source de l'activité respective dans cette liber?


Ensuite, demandez aux développeurs de cette libération d'ajouter une fonctionnalité de laisser les développeurs à choisir s'ils veulent une flèche «retour» dans l'application ou le no.


Je ne l'essayerai pas pour vous, mais le chemin de base est de vérifier leur code source et de la compiler vous-même, soit en tant que fichier .jar que vous pouvez ensuite créer un lien vers votre projet en tant que bibliothèque ou pour le faire comme la Une partie de votre projet, mais dans ce dernier cas, cela sera compilé avec toutes vos constructions.


Les modifications de Panjeet à la demande sont les bienvenues mais notent que Modifier doit ajouter des éclaircissements ou plus de détails aux questions, mais vous avez modifié la question complète elle-même qui causent des problèmes graves avec la poste. S'il vous plaît ne changez pas la piste de la question


Rouler le Modifier. Une prime n'est pas une question de questions-as-de-chaussée-que-u-you-king-in-7-jours.


@Panjeet - S'il vous plaît poser une nouvelle question au lieu de la modifier celle-ci. Essayer de poser des questions à plusieurs questions sous une seule prime est irrespectueuse envers ceux qui ont pris le temps de répondre à votre question initiale.


3 Réponses :


5
votes

Une solution pourrait être de créer une activité abstraite qui remplace olébackprimé () code>. Ensuite, toutes vos activités doivent étendre cette nouvelle activité.

public abstract class NoBackPressedActivity extends AppCompatActivity {
    @Override
    public void onBackPressed() {
        // do nothing because you don't want them to leave when it's pressed
    }
}


4 commentaires

Est-ce que vous extension de ce visitelectionpluginactivité classe d'échantillons?


Vous venez de copier en collé le code de l'exemple de plug-in Mapox. C'est pourquoi je ne comprends pas quelle activité vous essayez de prolonger.


OK, alors pourquoi vous ne pouvez pas utiliser la réponse proposée lorsque votre activité n'élargise que AppCompatiactivité . Comme Class de classe publiqueLectionLityPluginactivité étend la nobackpressedactivité


Et avez-vous essayé de remplacer le olébackPressed () dans votre lieux sélectionneckinactivité activité? Je suppose que tu as essayé et ça ne marche pas. C'est pourquoi vous recherchez une solution globale qui la désactive partout dans l'application.



6
votes

Que diriez-vous de prolonger la bibliothèque? Les classes ne sont pas finales et je pense que tout ce dont vous avez besoin est d'étendre la classe d'activité et peut être une classe de constructeur. Commencez par vérifier le ActivityClass . Et cela peut être la classe étendue possible.

import com.mapbox.mapboxsdk.places.R;

class YourPickerActivity extends PlacePickerActivity{

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addBackButtonListener()
}
@Override
public void onBackPressed() {
    // do nothing because you don't want them to leave when it's pressed
}

private void addBackButtonListener() {
    ImageView backButton = findViewById(R.id.mapbox_place_picker_toolbar_back_button);
    backButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //doNothing
        }
    });
    //or hide the button
    }
}


2 commentaires

Builder et PickerActivity ne sont pas extensibles. Vous pouvez copier / coller les codes de la schémaspéractivité, modifier ONDBackPress et démarrer l'activité de la même manière que dans Builder. Je pense que la seconde liboil utilise Google Map API et rien de spécial et il pourrait être préférable de la mettre en œuvre vous-même.


Si oui, faites une demande de traction ou ouvrez des problèmes à la bibliothèque Repo. Je préférerais la mise en œuvre de la Google Map Lib par vous-même car ce serait beaucoup plus facile.



-3
votes

Définissez A comme local

@Override
public void onBackPressed()
{
    if(a)
    {
        super.onBackPressed();
    }
    else
    {

    }
}


4 commentaires

Ce n'est pas drôle. Êtes-vous trolling? Pourquoi voudriez-vous modifier une question à une question complètement différente avec les réponses existantes déjà postées?


Non, quiconque vérifie les modifications saura la vérité. Ouverture de la page Device de périphérique et désactivation du bouton arrière d'une activité externe ne sont nulle part près de la même question.


@Panjeet écrivez une nouvelle question.


Laissez-nous Continuez cette discussion dans le chat .