2017-10-30 2 views
-6

Für ein Material, den Dialog mit der Schaltfläche OK, ich möchte diese Methode verwenden:Wie ändere ich eine Methode von einer Klasse in einer anderen Klasse?

public void server_alertdialog(String msg, final Context context) { 
     final MaterialDialog mMaterialDialog = new MaterialDialog(context); 
     mMaterialDialog.setMessage(msg); 
     mMaterialDialog.setCanceledOnTouchOutside(false); 
     mMaterialDialog.setPositiveButton(getResources().getString(R.string.ok), new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (isOnline()){ 
       mMaterialDialog.dismiss(); 
      }else { 
        Toast.makeText(getApplicationContext(),"You are not online",Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }); 

     mMaterialDialog.show(); 
    } 

Dieses Verfahren wird derzeit in einer Klasse, wo mehrere gängige Methoden sind, lassen Sie uns sagen, der Name der Klasse ist common_methods.But in jeder Klasse sollte die Ausgabe anders sein, wenn der "ok" -Knopf angetippt wird. So möchte ich die On-Click-Funktion dieser Methode trennen:

mMaterialDialog.setPositiveButton(getResources().getString(R.string.ok), new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (isOnline()){ 
       mMaterialDialog.dismiss(); 
      }else { 
        Toast.makeText(getApplicationContext(),"You are not online",Toast.LENGTH_SHORT).show(); 
       } 
      } 
     }); 

Und verwenden Sie es in anderen Klassen wie erforderlich. Wie kann ich das machen?

+1

Vielleicht eine andere Methode mit spezifischen Parametern aufrufen aus der Onclick-Funktion ändern? – Lino

+0

http://idownvotedbecau.se/noresearch/ – AesSedai101

+0

Bitte lesen [Unter welchen Umständen kann ich "dringende" oder andere ähnliche Sätze zu meiner Frage hinzufügen, um schnellere Antworten zu erhalten?] (// meta.stackoverflow.com/q/326569) - die Zusammenfassung ist, dass dies kein idealer Weg ist, um Freiwillige anzusprechen, und ist wahrscheinlich kontraproduktiv, um Antworten zu erhalten. Bitte unterlassen Sie das Hinzufügen zu Ihren Fragen. – halfer

Antwort

0
public class BaseActivity extends AppCompatActivity{ 
private ProgressDialog mProgressDialog; 
public AVLoadingIndicatorView avLoadingIndicatorView; 
private Context context; 
protected TextView[] tv; 
protected Button[] bt; 
protected RadioButton[] rt; 
public static DefaultCard defaultCard; 
public static CardsItem cardsItem; 
public static Boolean isAppLogIn = true; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    context =this; 
    Init(); 
} final MaterialStyledDialog.Builder dialogHeader_1 = new MaterialStyledDialog.Builder(context) 
      .setIcon(new IconicsDrawable(context).icon(icon).color(Color.WHITE)) 
      .withDialogAnimation(true) 
      .setTitle(title+"!") 
      .setDescription(message) 
      .setHeaderColor(color) 
      .setPositiveText("OK") 
      .onPositive(new MaterialDialog.SingleButtonCallback() { 
       @Override 
       public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {//      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + context.getPackageName()))); 
        OkayAlertClick(); 
       } 
      });//    .setNegativeText("Later"); 
    dialogHeader_1.show(); 

} 

public void OkayAlertClick() 
{ 

}} 

erweitert baseactivity in Ihrer Klasse und OkayAlertClick() -Methode accourding Ihrem Bedarf

wie die

public class PayAccountSettingActivity extends BaseActivity {public void OkayAlertClick() { 
    Toast.makeText(PayAccountSettingActivity.this, "Please go to edit mode", Toast.LENGTH_SHORT).show(); 
}} 
+2

formatieren Sie bitte Ihren Code korrekt – Lino

+1

In Java-Code-Stil, Methoden werden in der Regel beginnend mit Kleinbuchstaben benannt. Großbuchstaben Start ist für Klassen reserviert. –

Verwandte Themen