我正在尝试创建一个数独板,当你按下其中一个空按钮时,它会显示出来 你是一个带有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);
}
答案 0 :(得分:0)
正如评论中所述,您应该尝试缩小问题范围并仅发布最相关的代码,如果我们认为有必要,我们会要求更多。另外,在帖子中发布使用工具栏格式化的代码,这样我们就不必来回翻转了。您还应该通过单击相应答案旁边的复选标记来接受答案,这有助于解决您的问题。您还应该确保一直阅读Help Section
话虽如此,我会尽力帮助你,因为你知道。在我看来,您通过对AlertDialog
进行膨胀然后期望您的Buttons
课程运行来显示layout
Dialog
AlertDialog
。这不是它的工作原理。如果您想使用该课程而不是使用Intent
,请创建startActivityForResult
并使用setResult()
启动该课程,并在Dialog
中将结果发回{ {1}}课程。然后,您将使用Acvtivity
在第一个onActivityRresult()
中获得该结果。因此,当点击空按钮而不是Intent
AlertDialog
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 Docs关于此的一个很好的例子。
我可能错了,因为有很多代码需要查看,但这就是发生在我身上的事情。
对话主题活动
此外,您可以通过在Activity
Dialog
标记中添加以下行,为<activity>
提供manifest
的外观
android:theme="@android:style/Theme.Dialog"