-1

我正在尝试创建一个数独板,当您按下其中一个空按钮时,它会向您显示一个警报对话框,其中包含 10 个按钮,其中包含数字 1-9 结束一个空按钮;当我按下对话框中的一个按钮时,没有任何反应。

游戏代码:

AlertDialog.Builder alert=new AlertDialog.Builder(this);
alert.setView(View.inflate(this, R.layout.activity_dialog, null));
alert.show();
Intent e=getIntent();
int s=e.getIntExtra("number", 0);

对话代码:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dialog);
        button1=(Button)findViewById(R.id.btn1);
        button1.setOnClickListener(this);
        button2=(Button)findViewById(R.id.btn2);
        button2.setOnClickListener(this);
        button3=(Button)findViewById(R.id.btn3);
        button3.setOnClickListener(this);
        button4=(Button)findViewById(R.id.btn4);
        button4.setOnClickListener(this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.dialog, menu);
        return true;
}

@Override
public void onClick(View v) {
        // TODO Auto-generated method stub
        Button b=(Button)v;
        if(b==button1)
        {
                button1.setText("hay");
                Intent i=new Intent(this,EasyGame.class);
                i.putExtra("number", 1);
                startActivity(i);
        }
        else
        {
                if(b==button2)
                {
                        Intent i=new Intent(this,EasyGame.class);
                        i.putExtra("number", 2);
                        startActivity(i);
                }
                else
                {
                        if(b==button3)
                        {
                                Intent i=new Intent(this,EasyGame.class);
                                i.putExtra("number", 3);
                                startActivity(i);
                        }
                        else
                        {


                                if(b==button4){
                                        Intent i=new Intent(this,EasyGame.class);
                                        i.putExtra("number", 4);
                                        startActivity(i);
                                }
4

1 回答 1

0

如评论中所述,您应该尝试缩小问题范围,只发布最相关的代码,如果我们认为有必要,我们会要求更多。此外,在您的帖子中发布使用工具栏格式化的代码,这样我们就不必来回翻转。当有助于解决您的问题时,您还应该通过单击相应答案旁边的复选标记来接受答案。您还应该确保通读帮助部分

话虽如此,这次我会尽力为您提供帮助。在我看来,您通过夸大然后期望您的课程运行来显示AlertDialog与。这不是它的工作方式。如果您想使用该类,那么您可以创建一个并使用它来启动该类并在您的类中发回结果,而不是使用该类。然后,您将在第一个with中获得该结果。所以,当一个空按钮被点击而不是ButtonslayoutDialogAlertDialogIntentstartActivityForResultsetResult()DialogAcvtivityonActivityRresult()IntentAlertDialog

Intent i = (FirstActivityName.this, Dialog.class);
startActivityForResult(i, 0);

在您的Dialog班级中,单击按钮后,您Intent使用空构造函数创建一个并发回说被单击的数字

if(b==button1)
            {
                    Intent i=new Intent();
                    i.putExtra("number", 1);
                    setResult(0);
                    finish();

然后在您的第一个方法中,Activity您将拥有一个方法,该方法onActivityResult()将获得Intent您发回的数据。

请通读有关此的活动文档,其中有一个很好的示例。

我可能错了,因为有很多代码要查看,但这就是我正在发生的事情。

对话主题活动

此外,您可以通过将以下行添加到Activity您的Dialog<activity>manifest

android:theme="@android:style/Theme.Dialog"
于 2013-09-05T16:19:19.390 回答