在Android中更改按钮单击的布局

Posted

技术标签:

【中文标题】在Android中更改按钮单击的布局【英文标题】:Changing Layouts On Button Click In Android 【发布时间】:2011-11-10 20:26:46 【问题描述】:

因此,截至目前,我正在制作一个带有多个布局文件的 android 应用程序,这些布局文件可以在单击按钮时进行交换。目前我有一个问题。我有一个用户单击一个按钮,该按钮打开一个带有多个单选按钮的 AlertDialog,他们选择一个然后点击 Ok。这将设置一个全局CharSequence 然后一旦他们确定这是他们想要的,他们就会点击完成以进入下一个屏幕。这是完成按钮的代码。

<Button android:layout_ android:id="@+id/doneEventButton"       android:text="@string/doneEventButton" android:layout_ android:onClick="nextEvent"></Button>

这是nextEvent的代码。

public void nextEvent()

    if (eventVarString == "Send A Text")
    
        setContentView(R.layout.send_text);
    
    else if (eventVarString == "Make A Call")
    
        setContentView(R.layout.make_call);
    
    else if (eventVarString == "Open An App")
    
        setContentView(R.layout.open_app);
    
    else if (eventVarString == "Send An Email")
    
        setContentView(R.layout.send_email);
    
    else if (eventVarString == "Go To A Website")
    
        setContentView(R.layout.go_to_a_website);
    

这是弹出AlertDialog并设置全局变量的代码。

public void typeOfEvent(View v)

        final CharSequence[] items = "Send A Text", "Make A Call", "Open An App", "Send An Email", "Go To A Website";

        AlertDialog.Builder builder = new AlertDialog.Builder(SchedulerActivity.this);
        builder.setTitle("Choose An Event");
        builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() 
            public void onClick(DialogInterface dialog, int item) 
                eventVarString = items[item];
         Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
            
        );

        builder.setPositiveButton("Yes",
         new DialogInterface.OnClickListener() 
          public void onClick(DialogInterface dialog, int id) 
           TextView addEventVarText = (TextView) findViewById(R.id.eventChosen);
           addEventVarText.setText(eventVarString);
           Toast.makeText(SchedulerActivity.this, "Success", Toast.LENGTH_SHORT).show();
          
         );
        builder.setNegativeButton("No",
         new DialogInterface.OnClickListener() 
          public void onClick(DialogInterface dialog, int id) 
           Toast.makeText(SchedulerActivity.this, "Fail", Toast.LENGTH_SHORT).show();
          
         );
        AlertDialog alert = builder.create();
        alert.show();

这是当我单击完成按钮时从强制关闭生成的 LogCat。

Pastebin.com

【问题讨论】:

【参考方案1】:

将参数View添加到事件处理程序中。

public void nextEvent(View view)

【讨论】:

哇,如此简单却又如此遥远。不敢相信我错过了。谢谢!

以上是关于在Android中更改按钮单击的布局的主要内容,如果未能解决你的问题,请参考以下文章

Android - 使用动画更改布局

单击时可扩展的listview android更改布局

Android - 单击按钮更改通知的 ContentText

动画在 Android 中无法正常工作(仅执行一次)

如何通过单击选项卡来更改操作栏菜单按钮

Android - 按下按钮时将textview添加到布局