Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从自定义对话框活动中的活动调用方法_Android_Dialog_Android Activity - Fatal编程技术网

Android 从自定义对话框活动中的活动调用方法

Android 从自定义对话框活动中的活动调用方法,android,dialog,android-activity,Android,Dialog,Android Activity,我正在开发一个android应用程序,其中我使用一个活动作为自定义对话框。我将自定义对话框活动命名为dialog\u activity,将游戏活动命名为Activity1。在对话框\u活动中,有两个按钮,即是和否。对话框询问用户是否要开始新游戏。那么,我如何从“是”按钮的“是”方法中的“活动”对话框中的“活动”调用方法。这是一个tic-tac-toe应用程序。 代码如下: 活动1 public class Dialog_activity extends Activity { Button yes

我正在开发一个android应用程序,其中我使用一个活动作为自定义对话框。我将自定义对话框活动命名为
dialog\u activity
,将游戏活动命名为
Activity1
。在
对话框\u活动
中,有两个按钮,即是和否。对话框询问用户是否要开始新游戏。那么,我如何从“是”按钮的“是”方法中的“活动”对话框中的“活动”调用方法。这是一个tic-tac-toe应用程序。 代码如下:

活动1

public class Dialog_activity extends Activity {
Button yesbutton,nobutton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_1);
Button btn1 = (Button) findViewById(R.id.button1);
Button btn2 = (Button) findViewById(R.id.button2);
Button btn3 = (Button) findViewById(R.id.button3);
Button btn4 = (Button) findViewById(R.id.button4);
Button btn5 = (Button) findViewById(R.id.button5);
Button btn6 = (Button) findViewById(R.id.button6);
Button btn7 = (Button) findViewById(R.id.button7);
Button btn8 = (Button) findViewById(R.id.button8);
Button btn9 = (Button) findViewById(R.id.button9);
}

public void resetButtons()
{
btn1.setText("");
btn2.setText("");
btn3.setText("");
btn4.setText("");
btn5.setText("");
btn6.setText("");
btn7.setText("");
btn8.setText("");
btn9.setText("");
}
}
public class Dialog_activity extends Activity {
Button yesbutton,nobutton;
对话活动

public class Dialog_activity extends Activity {
Button yesbutton,nobutton;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    setContentView(R.layout.dialog_activity);
    Intent startdialog = getIntent();
    yesbutton = (Button) findViewById(R.id.button);
    nobutton = (Button) findViewById(R.id.button2);
    nobutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            finish();
        }
    });
    yesbutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            finish();
            //call the resetButtons() method
        }
    });

谢谢

使用实例调用所需的方法,在Activity1中创建Dialog_活动的实例

Class Activity1 extends Activity
{

   Dialog_activity dialog_activity;

    btn.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View arg0)
            {
                dialog_activity.the_method_you_want;

            }
        });
}

使用实例调用所需的方法,在Activity1中创建Dialog_活动的实例

Class Activity1 extends Activity
{

   Dialog_activity dialog_activity;

    btn.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View arg0)
            {
                dialog_activity.the_method_you_want;

            }
        });
}
以下是几个选项:

  • 您可以将reset button()设置为静态,但也必须将按钮设置为静态。不建议使用此方法。

  • 使用此选项可创建自定义对话框,并仅在Activity1中展开此自定义对话框。您可以将CustomDialogClass设置为内部类,因此它将能够访问所有Activity1方法

  • 希望有帮助。

    这里有几个选项:

  • 您可以将reset button()设置为静态,但也必须将按钮设置为静态。不建议使用此方法。

  • 使用此选项可创建自定义对话框,并仅在Activity1中展开此自定义对话框。您可以将CustomDialogClass设置为内部类,因此它将能够访问所有Activity1方法


  • 希望有帮助。

    我有两种建议

    1) 使用startActivityForResult()从游戏活动启动对话框活动,并在GameActivity中覆盖活动结果()


    2) 使用
    registerReceiver()
    注册GameActivity以侦听自定义意图操作,并使用
    sendBroadCast()

    在DialogActivity中广播该操作我可以建议两种方法

    1) 使用startActivityForResult()从游戏活动启动对话框活动,并在GameActivity中覆盖活动结果()


    2) 使用
    registerReceiver()
    注册GameActivity以侦听自定义意图操作,并使用
    sendBroadCast()
    1在DialogActivity中广播该操作。进口活动1 2.在类内写入类变量对话框\活动activity1 3.使用此activity1引用activity1.resetButtons()调用重置方法;Inner yesbutton onclocklistener


    1。进口活动1

    public class Dialog_activity extends Activity {
    Button yesbutton,nobutton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_1);
    Button btn1 = (Button) findViewById(R.id.button1);
    Button btn2 = (Button) findViewById(R.id.button2);
    Button btn3 = (Button) findViewById(R.id.button3);
    Button btn4 = (Button) findViewById(R.id.button4);
    Button btn5 = (Button) findViewById(R.id.button5);
    Button btn6 = (Button) findViewById(R.id.button6);
    Button btn7 = (Button) findViewById(R.id.button7);
    Button btn8 = (Button) findViewById(R.id.button8);
    Button btn9 = (Button) findViewById(R.id.button9);
    }
    
    public void resetButtons()
    {
    btn1.setText("");
    btn2.setText("");
    btn3.setText("");
    btn4.setText("");
    btn5.setText("");
    btn6.setText("");
    btn7.setText("");
    btn8.setText("");
    btn9.setText("");
    }
    }
    
    public class Dialog_activity extends Activity {
    Button yesbutton,nobutton;
    
    2。编写类变量对话框\u类内的活动activity1

    Dialog_activity activity1;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
        setContentView(R.layout.dialog_activity);
        Intent startdialog = getIntent();
        yesbutton = (Button) findViewById(R.id.button);
        nobutton = (Button) findViewById(R.id.button2);
        nobutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
        yesbutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {`enter code here`
                finish();
                **//call the resetButtons() method using reference activity1 
                activity1.resetButtons();
            }
        });
    

    1。进口活动1 2.在类内写入类变量对话框\活动activity1 3.使用此activity1引用activity1.resetButtons()调用重置方法;Inner yesbutton onclocklistener


    1。进口活动1

    public class Dialog_activity extends Activity {
    Button yesbutton,nobutton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_1);
    Button btn1 = (Button) findViewById(R.id.button1);
    Button btn2 = (Button) findViewById(R.id.button2);
    Button btn3 = (Button) findViewById(R.id.button3);
    Button btn4 = (Button) findViewById(R.id.button4);
    Button btn5 = (Button) findViewById(R.id.button5);
    Button btn6 = (Button) findViewById(R.id.button6);
    Button btn7 = (Button) findViewById(R.id.button7);
    Button btn8 = (Button) findViewById(R.id.button8);
    Button btn9 = (Button) findViewById(R.id.button9);
    }
    
    public void resetButtons()
    {
    btn1.setText("");
    btn2.setText("");
    btn3.setText("");
    btn4.setText("");
    btn5.setText("");
    btn6.setText("");
    btn7.setText("");
    btn8.setText("");
    btn9.setText("");
    }
    }
    
    public class Dialog_activity extends Activity {
    Button yesbutton,nobutton;
    
    2。编写类变量对话框\u类内的活动activity1

    Dialog_activity activity1;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
        setContentView(R.layout.dialog_activity);
        Intent startdialog = getIntent();
        yesbutton = (Button) findViewById(R.id.button);
        nobutton = (Button) findViewById(R.id.button2);
        nobutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
        yesbutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {`enter code here`
                finish();
                **//call the resetButtons() method using reference activity1 
                activity1.resetButtons();
            }
        });
    


    请将代码剪贴贴贴在需要帮助的地方,好吗?@RDC是的,我将粘贴代码。张贴代码。您应该创建自定义对话框,而不是创建对话活动!然后您可以轻松地调用所需的method@RachitaNanda我已经发布了代码。创建一个对话框或一个片段对话框,而不是一个活动。这将很容易解决你的问题。请发布代码以获取更多帮助。请将代码剪贴贴贴在需要帮助的地方好吗?@RDC是的,我将粘贴代码。发布代码。您应该创建自定义对话框,而不是创建对话框活动!然后您可以轻松地调用所需的method@RachitaNanda我已经发布了代码。创建一个对话框或一个片段对话框,而不是一个活动。这将很容易解决你的问题。请发布代码以获取更多帮助。因此,从另一个活动调用活动中的方法是不可能的?您可以使用上述第1点。但不建议创建静态变量,除非它至关重要,因为非常感谢您的帮助!我建议不要在android中维护任何带有静态引用的视图,因为上下文与每个视图关联,这可能导致上下文泄漏SSO,从另一个活动中调用活动中的方法是不可能的?您可以按说明使用第1点。但不建议创建静态变量,除非它至关重要,因为非常感谢您的帮助!我建议不要在android中维护任何带有静态引用的视图,因为上下文与每个视图关联,这可能导致上下文leakages@kumar我的应用程序力在我使用时关闭。我的应用程序力在我使用时关闭。@kumar我的应用程序力在我使用时关闭。我的应用程序力在我使用时关闭。谢谢,但我的应用程序力在我使用时关闭执行此操作。谢谢,但当我执行此操作时,我的应用程序强制关闭。