0

in my "frontpage" class, i'm having diferent onClick like this (7 or 8) :

public void onClickactu(View v) {
            //Init boite chargement
            final ProgressDialog pd = ProgressDialog.show(this, "", "Chargement en cours", true);
            setContentView(R.layout.activity_webapp);
            WebView myWebView = (WebView) findViewById(R.id.webView_web_app);
            myWebView.setWebViewClient(new WebViewClient() {  
                        // Disparirion boite quand page chargée 
                        @Override
                          public void onPageFinished(WebView view, String url) {    
                            pd.dismiss();
                          }
                        });
            myWebView.getSettings().setJavaScriptEnabled(true);
            myWebView.loadUrl("XXXXXXXXXX");

        }

        public void onClickagend(View v) {
            //Init boite chargement
            final ProgressDialog pd = ProgressDialog.show(this, "", "Chargement en cours", true);
            setContentView(R.layout.activity_webapp);
            WebView myWebView = (WebView) findViewById(R.id.webView_web_app);

            myWebView.setWebViewClient(new WebViewClient() {  
                // Disparirion boite quand page chargée 
                @Override
                  public void onPageFinished(WebView view, String url) {
                    pd.dismiss();
                  }
                });
            myWebView.loadUrl("XXXXXXXX");
            myWebView.getSettings().setJavaScriptEnabled(true);
        }

As you can see there's a progressdialog on all of the onClick void

is there a way to regroup all of this in order not to put the progressdialog on each onClick ?

Hope i was clear Thanks

2 Answers2

0

Is this what you are trying to achieve ?

OnClickListener listener = new OnClickListener() {

    @Override
    public void onClick(View v) {
        //Init boite chargement
        final ProgressDialog pd = ProgressDialog.show(this, "", "Chargement en cours", true);
        setContentView(R.layout.activity_webapp);
        WebView myWebView = (WebView) findViewById(R.id.webView_web_app);
        myWebView.setWebViewClient(new WebViewClient() {  
                    // Disparirion boite quand page chargée 
                    @Override
                      public void onPageFinished(WebView view, String url) {    
                        pd.dismiss();
                      }
                    });
        myWebView.getSettings().setJavaScriptEnabled(true);
        myWebView.loadUrl("XXXXXXXXXX");
    }
};
button1.setOnClickListener(listener);
button1.setOnClickListener(listener);
// etc
2Dee
  • 8,609
  • 7
  • 42
  • 53
  • i'm not familiar with the setOnClickListener, but it sounds that yes this what i'm trying to achieve. "regroup" all of the onclick instruction in one public void, what i'm supposed to do next? change parameters on setonclicklistener? –  Aug 21 '14 at 15:30
  • You can call setOnClickListener on a View reference instead on using android:onclick="method_name" in the layout xml. You could use a private method that takes arguments depending on the button, and build the correct OnClickListener accordingly, or use a click listener with a switch statement... Have a look at these threads for more details : http://stackoverflow.com/questions/6372104/best-practice-for-defining-button-events-in-android and http://stackoverflow.com/questions/5851418/best-practices-for-handling-ui-events – 2Dee Aug 21 '14 at 15:35
  • thank you, since my laptop stay at the office, i will have a look at this tomorrow and come for feedbacks ! –  Aug 21 '14 at 15:51
0

I ended up doing something like this :

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.frontpage);
    }  

    public void ButtonOnClick(View v) {
        setContentView(R.layout.activity_webapp);
        final ProgressDialog pd = ProgressDialog.show(this, "", "Chargement en cours", true);
        WebView myWebView = (WebView) findViewById(R.id.webView_web_app);
        myWebView.setWebViewClient(new WebViewClient() {

            @Override
              public void onPageFinished(WebView view, String ur){ 
                pd.dismiss();
              }
            });
        myWebView.getSettings().setJavaScriptEnabled(true);
        switch (v.getId()) {
          case R.id.button1:
              myWebView.loadUrl("xx");
            break;
          case R.id.button2:
              myWebView.loadUrl("xx");
            break;
          case R.id.button3:
              myWebView.loadUrl("xx");
            break;
          case R.id.button4:
              myWebView.loadUrl("xx");
            break;
          case R.id.button5:
              myWebView.loadUrl("xx");
            break;
          case R.id.button6:
              myWebView.loadUrl("xx");
            break;
          case R.id.button10:
              myWebView.loadUrl("xx");
            break;
          case R.id.button8:
              myWebView.loadUrl("xx");
            break;
          case R.id.button9:
              myWebView.loadUrl("xx");
            break;

          }
    }

just had to edit the XML file for android:onclick, set all this to ButtonOnClick which is what i wanted "regroup" thank you, you gave me the tip :-)