Comment combiner deux fonctions ensemble dans Java Android


sk123

Comment puis-je être capable de combiner ces deux fonctions en une seule et de pouvoir effectuer deux actions Invisible et invisible. Je ne veux pas simplement obtenir la déclaration if de la méthode buttonInVisible et simplement la mettre dans la commande buttonVisible.

Voici le code

Activité principale

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends FragmentActivity {

    private WebViewFragment mWebViewFragment;
    public TextView textView;
    public Button buttons;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        buttons = (Button) findViewById(R.id.button);
        buttons.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                onBackPressed();
            }
        });
        textView = (TextView) findViewById(R.id.textViewId);
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

        mWebViewFragment = new WebViewFragment();
        fragmentTransaction.replace(R.id.mainFragment, mWebViewFragment);
        fragmentTransaction.commit();
    }

    @Override
    public void onBackPressed() {

        if(mWebViewFragment != null && mWebViewFragment.canGoBack()) {
            mWebViewFragment.goBack();
        } else {
            super.onBackPressed();
        }
    }

    public void setTitle(String title) {
        if(textView != null){
            textView.setText(title);
        }
    }

    public void buttonVisible(int visibility) {
        if(buttons != null){
            buttons.setVisibility(visibility);
        }
    }

    @Override
    protected void onStart() {
        super.onStart();
        setVisible(true);
    }
}

Fragment

import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class WebViewFragment extends Fragment {

    private WebView mWebView;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_main, container, false);
        mWebView = (WebView) view.findViewById(R.id.webView);
        WebSettings webSettings = mWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        mWebView.loadUrl("https://www.google.co.uk/");
        mWebView.setWebViewClient(new WebViewClient() {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
                Log.v("WebView has started", url);
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                String title = mWebView.getTitle();
                Log.v(getClass().getName(), "Title=" + title);
                /**if(mWebView.canGoBack()) {
                    buttonVisible();
                } else {
                    buttonInVisible();
                }**/
            }
        });

        mWebView.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onReceivedTitle(WebView view, String title) {
                super.onReceivedTitle(view, title);
                    setTitle(title);
                Log.v(getClass().getName(), "Received Title" + title);
            }
        });
        return view;
    }

    public boolean canGoBack() {
        return mWebView.canGoBack();
    }

    public void goBack() {
        mWebView.goBack();
    }

    public void setTitle(String title) {

        if (title != null && title.length() > 0) {
            Activity activity = getActivity();
            if(activity != null && activity instanceof MainActivity){
                ((MainActivity) activity).setTitle(title);
            }
        }
    }

   public void SetVibility() {
       Activity activity = getActivity();
       if(activity != null && activity instanceof MainActivity) {
           ((MainActivity) activity).buttonVisible(View.VISIBLE);
       }
   }

    public void buttonInVisible() {
        Activity activity = getActivity();
        if(activity != null && activity instanceof MainActivity){
            ((MainActivity) activity).buttonVisible(View.INVISIBLE);
        }
    }
}
Ricardo Vieira

Depuis la méthode

public void buttonVisible(int visibility) {
    if(buttons != null){
        buttons.setVisibility(visibility);
    }
}

Est public sur MainActivity (qui contient le fragment), vous pouvez simplement invoquer sur votre fragment lorsque vous souhaitez ce qui suit:

((MainActivity) getActivity).buttonVisible(View.VISIBLE)

Cela appellera MainActivity et changera la visibilité du bouton dessus

Articles connexes


Combiner deux fonctions ensemble

Frank Smith J'ai deux fonctions nl2bret substrque je voudrais combiner ensemble, quelqu'un pourrait-il s'il vous plaît dire comment je pourrais y parvenir: <?php echo nl2br($row_rsMyrecordSet['text']); ?> <?php echo substr($row_rsMyrecordSet['text'],0,10); ?>

Comment combiner deux fonctions dans R?

Rafael Jeremiah Jonathans J'ai deux fonctions et je souhaite combiner les deux en une seule fonction. Par exemple, j'ai deux fonctions différentes avec les mêmes arguments multiples comme suit: fun1 <- function(a, b){ print(a * b)} fun2 <- functio

Comment combiner deux fonctions dans Racket ?

Yamin J'essaie de créer une nouvelle fonction qui fonctionne pour deux fonctions auparavant. Je suis confus au sujet des parties (cons/+) et (add-thanks/string-length), car elles ne sont pas du même type de valeur. (define (good-job lon) (cond [(empty? l

Comment combiner deux fonctions?

Shay Fletcher Je travaille dans mon projet sur quelque chose qui obtient un tableau et trouve les nombres maximum et minimum et je l'ai fait avec deux fonctions distinctes et je veux les combiner en une seule fonction. Comment puis-je faire ça correctement? La

Comment combiner deux tracés de fonctions dans R ?

VADEUR Je n'arrive pas à trouver un moyen de combiner deux ggplots ayant des plages de fonctions différentes. library(ggplot2) myfun <- function(x) { 1/(1 + exp(-x))} ggplot( NULL,aes(x)) + stat_function(data=data.frame(x=c(0, 20)),fun=myfun, geom="line")

Comment combiner deux graphiques linéaires ensemble

Engrenages Je suis nouveau dans l'utilisation de R, veuillez donc rester avec moi car mon code pourrait ne pas être le meilleur. Je veux donc combiner ces deux graphiques linéaires ensemble car en ce moment j'ai écrit du code pour chaque élément que j'analyse.

comment combiner deux prochains si ensemble

Nikolan Asad J'ai un script qui s'exécute sur la liste des fichiers pour faire certaines des modifications, chaque fichier d'entre eux a un événement d'appel et les détails de l'événement d'appel contiennent 4 éléments donc je veux juste faire les changements

Comment combiner deux sites Gatsby ensemble

Jibin Thomas Actuellement, j'ai deux sites développés à l'aide de gatsby.js déployés sur example.com et blog.example.com. Je souhaite créer un sous-répertoire de blog.example.com vers example.com/blog. Existe-t-il un moyen de le faire sans fusionner les deux r

Comment combiner deux fonctions fléchées ?

PRANAV comment combiner ci-dessous deux fonctions, que je dois utiliser dans un seul élément. S'il vous plaît aider onClick={() => setSelectedItem("List A")} onClick={(e) => e.stopPropagation()} e.g <a onClick={function1, funtion2} Plus onClick = {(e) => {