Android 从自定义对话框活动中的活动调用方法
我正在开发一个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
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;
}
});
}
以下是几个选项:
希望有帮助。我有两种建议 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我的应用程序力在我使用时关闭。我的应用程序力在我使用时关闭。谢谢,但我的应用程序力在我使用时关闭执行此操作。谢谢,但当我执行此操作时,我的应用程序强制关闭。