2017-07-27 2 views
4

Zum BeispielWie kann ich Methoden hinzufügen, die ich oft bei Android Studio verwende?

public void show_message(String message){ 
    Toast.makeText(this, message, Toast.LENGTH_SHORT).show(); 
} 

Ich mag diese Methode Auto Activity.java hinzufügen, wenn neue Aktivität oder Java-Klasse erstellen.

Ich möchte verschiedene Methoden wie diese speichern und sie in das Projekt einbinden, wo sie benötigt werden.

+0

Sie können eine benutzerdefinierte Klasse mit diesen benutzerdefinierten Methoden erstellen und importieren Sie sie in jedem Projekt –

+0

Es wird nicht beim Erstellen jeder Aktivität generiert werden. Sie können jedoch eine Aktivität namens Basisaktivität erstellen und alle diese Methoden dort implementieren. Und dann erweitern Sie jede neue Aktivität, die Sie erstellen, um BaseActivity. Sie können dann in allen Aktivitäten darauf zugreifen. –

+0

Sie können eine benutzerdefinierte Annotation erstellen und die Klasse mit dieser Annotation annotieren. Es ist jedoch schwer, da die Annotation in die Klasse schreiben muss. Sie können Beispiele für Anmerkungen, die in die Klasse geschrieben werden, überprüfen, indem Sie [Lombok-Quelle] (https://github.com/rzwitserloot/lombok) betrachten und die Getter/Setter-Annotation betrachten. Es schreibt Methoden in eine Klasse. – Zoe

Antwort

3

Sie müssen nur eine gemeinsame Dienstprogramme Klasse machen. Kopieren Sie einfach die Klasse und fügen Sie sie in das Projekt ein, in dem Sie sie verwenden. Machen Sie einfach ihre Methode Zugriffsspezifizierer wie öffentlichen staic, so dass Sie leicht darauf zugreifen können. Für z.B.

7

Was Sie tun sollten, ist ein BaseActivity erstellen und Ihre Aktivität erweitern diese BaseActivity. Fügen Sie alle Standardmethoden in dieser Aktivität hinzu, damit Sie sie überall verwenden können. Sie können this Github Projekt als Referenz beziehen. Es verwendet MVP.

Hier ist der direkte Link zu BaseActivity.

0

Was ich tun würde, ist eine Config-Klasse zu erstellen und all diese kleinen Dinge darin zu speichern. Zum Beispiel haben Sie einen Blick auf diese:

public class Config { 
    public Context context; 
    public String sharedPrefsName; 
    public String carTablesName, carsTableCarColumn, databaseName; 
    public int databaseNewVersion, databaseOldVersion; 
    public boolean showNotificationsToCustomer; 
    public String customerNotificationState; 
    public String userMobile; 
    public SharedPreferences preferences; 
    public String customerChatTableName; 
    public String customerChatMessageColumn; 
    public String customerChatSentByCustomerColumn; 
    public String customerChatTimeColumn; 
    public String loggedInUserId; 
    public String loggedInUserName; 
    public String customerChatSupportNotifyingUrl; 

    public Config(Context context) { 
     this.context = context; 
     customerChatSupportNotifyingUrl = ""; 
     customerChatTableName = "customerChat"; 
     customerChatMessageColumn = "customerMessage"; 
     customerChatTimeColumn = "sentOn"; 
     customerChatSentByCustomerColumn = "isSentByCustomer"; 
     sharedPrefsName = context.getString(R.string.shared_prefs_login_validator); 
     preferences = context.getSharedPreferences(sharedPrefsName, Context.MODE_PRIVATE); 
     customerNotificationState = context.getString(R.string.customer_notification_state); 
     showNotificationsToCustomer = preferences.getBoolean(customerNotificationState, true); 
     carTablesName = context.getString(R.string.user_car_table); 
     carsTableCarColumn = context.getString(R.string.user_car_table_car_column); 
     databaseName = context.getString(R.string.user_db); 
     databaseNewVersion = 3; 
     databaseOldVersion = 1; 
     loggedInUserId = preferences.getString(context.getString(R.string.user_db), ""); 
     userMobile = preferences.getString(context.getString(R.string.user_mobile), ""); 
     loggedInUserName = preferences.getString(context.getString(R.string.user_name), ""); 
    } 
} 

ich alle Konstanten in einer einzigen Datei platziert haben, so dass Sie nicht auf sie immer aussehen müssen. Wenn deine App größer wird, wäre das sehr nützlich.

Für einen Fortschritt Dialog verwende ich eine Klasse wie folgt:

public class MyProgressDialog extends ProgressDialog { 
    String title, message; 

    public MyProgressDialog(Context context, String title, String message) { 
     super(context); 
     if (!title.equals("")) this.setTitle(title); 
     this.setMessage(message); 
     this.setCancelable(false); 
     this.setIndeterminate(false); 
    } 
} 

Das ist nichts als eine einzige Klasse, die ProgressDialog.So Sie erstreckt, kann alle Funktionen des Fortschrittsdialog Klasse erwerben.

Ähnlich für Toast könnten Sie das gleiche tun. Wenn sie beim Erstellen der Aktivität angezeigt werden sollen, behalten Sie einfach Folgendes bei:

MyProgressDialog dialog=new MyProgressDialog(this,"title","message"); 
dialog.show(); 

in der onCreate() -Methode Ihrer Aktivität. Sie können das gleiche auch für Toast tun.

Im Fall, wenn es sich um eine Java-Klasse ist nur einen Konstruktor erstellen und in diesem Konstruktor, Schnipsel halten ..

Verwandte Themen