想在每个班级使用相同的功能

时间:2011-09-15 11:23:17

标签: java android function

我正在开发一个Android应用程序。现在我创建了一个创建自定义对话框的功能,我想在每个活动上显示此对话框。所以我需要在每个活动中调用此函数。但是作为自定义对话框的语法(例如Dialog d = new Dialog(home.this))。home是我创建函数的活动的名称,所以我不能在任何其他活动中使用此函数。我没有那么多使用android。所以给我一个很好的例子来解决我的问题。 Here is my code

4 个答案:

答案 0 :(得分:2)

以下是在所有活动中使用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();
   }

答案 1 :(得分:0)

只需在Context构造函数中添加SearchDialog()参数即可。

像这样:

   public SearchDialog(Context context){
        //....
   }

答案 2 :(得分:0)

您可以为每个类定义自己的接口和实现,或者使主Activity方法成为静态(只要它不需要访问非方法参数的动态对象中的任何内容)。

答案 3 :(得分:0)

final class Uutil {

public void static func(){

}

}

然后在你的课程中进行:

class A {
public void f() {
Uutil.func();
}
}