需要帮助找出为啥我的应用程序在单击按钮后没有离开主屏幕(这应该带我进入第二个活动屏幕)

Posted

技术标签:

【中文标题】需要帮助找出为啥我的应用程序在单击按钮后没有离开主屏幕(这应该带我进入第二个活动屏幕)【英文标题】:Need help finding why my application does not leave the home screen upon button click (which should take me to a second activity screen)需要帮助找出为什么我的应用程序在单击按钮后没有离开主屏幕(这应该带我进入第二个活动屏幕) 【发布时间】:2019-09-23 14:31:22 【问题描述】:

我有一个主要活动,其中用户显示了 3 个列表视图和 3 个按钮。当用户单击三个按钮中的两个时,我希望将用户发送到另一个屏幕(另一个布局)。我已经创建了另外两个布局和另外两个类。我不确定为什么这不起作用。我的应用程序没有报告任何错误,没有警告,并且我发现我无法逐步完成我的代码,因为我的调试器无法正常工作。

我有一个链接到主活动layout.xml android:OnClick 中的按钮的OnClickListner(我目前一次只测试一个按钮以解决问题)。我在 Main Activity 中放置了一个 Intent(根据多个来源和 YouTube 教程)已正确设置,并且应该将用户重定向到的新 Activity 链接到适当的布局。当我运行应用程序时,按钮单击会注册(我知道这一点,因为按下按钮时我有声音效果)但没有其他任何反应。我的所有活动也都存在于AndroidManifest.xml 文件中。并且所有的activity文件都在同一个文件夹级别,所有布局都在res/layout下

public class MainActivity extends AppCompatActivity 
@Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // instantiate button
        Button btnClicked = (Button)findViewById(R.id.goal);
final MediaPlayer mp = MediaPlayer.create(this, R.raw.click);
btnClicked.setOnClickListener(new View.OnClickListener() 
            @Override
            public void onClick(View v) 
                startActivity(new Intent(MainActivity.this, 
ChangeGoal.class));
mp.start();
            
        );

// method called when set goal button is clicked
    public void setGoal(View view)

    
        // intent to send user from main activity to the change goal 
activity
        Intent setGoal = new Intent(this, ChangeGoal.class);
        startActivity(setGoal);
    


public class ChangeGoal extends AppCompatActivity 
@Override
    public void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_change_goal);  // connect 
class to the other layout
    


//button from activity_main.xml
<Button
            android:id="@+id/goal"
            android:layout_
            android:layout_
            android:text="@string/Set"
            android:onClick="setGoal"
            android:textSize="20sp"
            android:textColor="#000000"/>`

再次,我希望从主活动中单击按钮将用户发送到他们需要进行选择的新活动,然后返回到主活动。到目前为止,按钮点击注册(我可以听到它,因为我在点击按钮时已经包含了一些音频)但是应用程序什么也不做,我留在同一个屏幕上,并且可以一次又一次地按下按钮。

【问题讨论】:

在你的 setGoal 意图中尝试 MainActivity.this 或 getContext。我认为您可以通过 view.getContext() 获得上下文 编辑您的问题并添加清单内容 @MohammadC 使用MainActivity.this 没有任何问题,因为这是ActivityActivity extends Context 的一个实例。调用getContext() 基本上会返回完全相同的内容(在这种情况下)。 【参考方案1】:

在您的Activity 布局中,您已在Button 上声明了这一点:

   android:onClick="setGoal"

然后,在代码中,您已将onClickListener 附加到相同的Button。这是错误的。做一个或另一个,但不要同时做。

【讨论】:

哇,感谢大卫,现在这很有意义。非常感谢您的回复,非常感谢。 这是否解决了您的问题?如果答案有帮助,您应该通过单击答案旁边的绿色复选标记来接受它。这会从未决问题列表中删除该问题,并使其他人更容易找到类似问题的解决方案。

以上是关于需要帮助找出为啥我的应用程序在单击按钮后没有离开主屏幕(这应该带我进入第二个活动屏幕)的主要内容,如果未能解决你的问题,请参考以下文章

为啥单击两次后我的事件侦听器与按钮解除绑定?

为啥我需要在提交按钮上单击两次才能提交我的表单?

为啥单击按钮后`JQuery`选项卡会丢失样式

MFC鼠标移动/离开,悬停在按钮上[关闭]

为啥单击按钮时我的选项卡没有变化?

几小时/分钟后单击按钮时的提醒通知