Хотите использовать одну и ту же функцию в каждом классе - PullRequest
2 голосов
/ 15 сентября 2011

Я занимаюсь разработкой приложения для Android. Теперь я создал одну функцию, которая создает пользовательское диалоговое окно, и я хочу, чтобы это диалоговое окно отображалось при каждом действии Поэтому мне нужно вызывать эту функцию при каждом действии. Но в качестве синтаксиса пользовательского диалога (например, Dialog d = new Dialog (home.this)). Home - это название действия, в котором я создал функцию, поэтому я не являюсь пользователем, способным использовать эту функцию в любой другой деятельности. И я не так часто использую Android. Так что дай мне хороший пример, чтобы решить мою проблему. Вот мой код

Ответы [ 4 ]

2 голосов
/ 15 сентября 2011

- это пример кода с использованием AlertDialog во всех действиях.

создайте один файл класса, например allmethod.java

, и добавьте этот код в этот класс

public static void showAlert(Activity act,String msg)
        {
            AlertDialog.Builder alert = new AlertDialog.Builder(act);
            alert.setMessage(msg).setPositiveButton("OK", new OnClickListener(){
                @Override
                public void onClick(DialogInterface dialog, int which)
                {   
                }
            }).show();
        }

и вы можете использовать из любого класса, например

allmethod.showAlert(Activity,"Message");

В вашем случае ..

public void SearchDialog(Context ctx){
           final Dialog dialog = new Dialog(ctx);
       dialog.setContentView(R.layout.dialogsearch);
       dialog.setTitle("       Enter The Text to Search");
       dialog.setCancelable(true);

       final EditText Text = (EditText) dialog.findViewById(R.id.EdText);

       Button buttonOK = (Button) dialog.findViewById(R.id.btnOK);
       buttonOK.setOnClickListener(new OnClickListener() {

           public void onClick(View v) {
                   String SearchText = Text.getText().toString();

               prefsPrivate =getSharedPreferences(Login.PREFS_PRIVATE,Context.MODE_PRIVATE);
                   Editor prefsPrivateEdit=prefsPrivate.edit();                        
                   prefsPrivateEdit.putString("Text",SearchText);
                   prefsPrivateEdit.commit();
                   Intent i = new Intent(ctx,SearchTask.class);
                   startActivity(i);
                   dialog.cancel();
           }
       });

       Button buttonCancel = (Button) dialog.findViewById(R.id.btnCancel);
       buttonCancel.setOnClickListener(new OnClickListener() {

           public void onClick(View v) {
                dialog.cancel();

           }
       });
       dialog.show();
   }
0 голосов
/ 15 сентября 2011

выпускной класс Uutil {

public void static func () {

}

}

тогда делай это в своих классах:

class A {
public void f() {
Uutil.func();
}
}
0 голосов
/ 15 сентября 2011

Вы можете либо определить свой собственный Интерфейс и реализовать для каждого класса, либо сделать основной метод Activity статическим (если ему не требуется доступ к чему-либо в динамических объектах, которые не являются аргументами метода).

0 голосов
/ 15 сентября 2011

Просто добавьте параметр Context в ваш конструктор SearchDialog().

Сделайте так:

   public SearchDialog(Context context){
        //....
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...