Android 应用程序 - 单击按钮不会打开新活动

Posted

技术标签:

【中文标题】Android 应用程序 - 单击按钮不会打开新活动【英文标题】:Android App - Clicking on Button does not open new activity 【发布时间】:2017-12-03 05:57:19 【问题描述】:

我的问题如下:我有一个活动activity transport。在此活动中,我有一个按钮 Auto,它应该打开新活动:activity_auto。每当我单击此按钮时,第一个活动activity transport 就会再次打开。我认为没有显示任何错误,并且引用还可以。

我附上了我的代码 sn-p

Class: activity_transport

package com.group6.travlhoe;

import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

public class activity_transport extends AppCompatActivity implements View.OnClickListener 

Button btnAuto;
private BottomNavigationView bottomNavigationView;


@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_transport);


    btnAuto = (Button) findViewById(R.id.Auto);
    btnAuto.setOnClickListener(this);


    bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottomNavigationView);

    bottomNavigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener()
        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item)
            if (item.getItemId()==R.id.menu_start)
                startActivity(new Intent(activity_transport.this, MainActivity.class));
             else if(item.getItemId()==R.id.menu_allgemein)
                startActivity(new Intent(activity_transport.this, activity_allgemein.class));
             else if(item.getItemId()==R.id.menu_transport)
                startActivity(new Intent(activity_transport.this, activity_transport.class));
             else if(item.getItemId()==R.id.menu_rechnung)
                startActivity(new Intent(activity_transport.this, activity_rechnung.class));
             else if(item.getItemId()==R.id.menu_unterkunft)
                startActivity(new Intent(activity_transport.this, activity_unterkunft.class));
            
            return true;
        
    );

    bottomNavigationView.setSelectedItemId(R.id.menu_transport);




@Override
public void onClick(View v) 
    if (v.getId() == R.id.Auto) 
        startActivity(new Intent(activity_transport.this, activity_auto.class));
    





XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:design="http://schemas.android.com/apk/res-auto"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_
    android:layout_
    android:orientation="vertical"
    android:padding="10dp"
    android:background="@drawable/hintergrund">

    <LinearLayout

        android:layout_
        android:layout_
        android:orientation="horizontal"
        android:layout_weight="0.3" >

    </LinearLayout>
    <LinearLayout
        android:layout_
        android:layout_
        android:layout_weight="1"
        android:orientation="horizontal">

        <Button
            android:id="@+id/Auto"
            android:layout_
            android:layout_
            android:layout_weight="1"
            android:alpha="0.75"
            android:background="@mipmap/buttom_col"
            android:text="Auto"
            android:textStyle="bold"/>

        <Button
            android:id="@+id/Flugzeug"
            android:alpha="0.9"
            android:layout_
            android:layout_
            android:layout_weight="1"
            android:background="@mipmap/buttom_col"
            android:text="Flugzeug"
            android:textStyle="bold" />
    </LinearLayout>

    <LinearLayout
        android:layout_
        android:layout_
        android:orientation="horizontal"
        android:layout_weight="1" >

        <Button
            android:id="@+id/Taxi"
            android:alpha="0.9"
            android:layout_
            android:layout_
            android:layout_weight="1"
            android:background="@mipmap/buttom_col"
            android:text="Taxi"
            android:textStyle="bold"/>

        <Button
            android:id="@+id/Bahn"
            android:alpha="0.75"
            android:text="Bahn"
            android:textStyle="bold"
            android:layout_
            android:layout_
            android:layout_weight="1"
            android:background="@mipmap/buttom_col" />
    </LinearLayout>

    <LinearLayout

        android:layout_
        android:layout_
        android:orientation="horizontal"
        android:layout_weight="0.3" >

    </LinearLayout>

    <FrameLayout
        android:layout_
        android:layout_
        android:layout_gravity="bottom">

        <View
            android:layout_
            android:layout_
            android:layout_gravity="top"
            android:background="@drawable/shadow" />


        <android.support.design.widget.BottomNavigationView
            android:id="@+id/bottomNavigationView"
            android:layout_
            android:layout_
            app:itemBackground="@color/colorWhite"
            design:menu="@menu/navigation" />

    </FrameLayout>



</LinearLayout>

【问题讨论】:

请分享xml文件-activity_transport.xml 在 OnClick 方法中检查 if 条件得到实际结果。 @MohamedMohaideenAH 我如何检查这个?抱歉,我对编程很陌生? 记录 v.getId() 值返回正确。或者删除 if 条件然后尝试。 您是否在manifest 文件中添加了该活动? 【参考方案1】:

试试这个

Intent it=new Intent(getApplicationContext(),activity_auto.class);
startActivity(it)

你也可以试试

getBaseContext()

如果没有工作,请使用

activity_transport.this.startActivity

而不是

startActivity

【讨论】:

您好,您的任何建议都不适合我...您还有其他想法吗?【参考方案2】:

你需要添加一个监听器。试试下面的代码

btnAuto.setOnClickListener(new OnClickListener() 
        public void onClick(View v) 
            if (v.getId() == R.id.Auto) 
                startActivity(new Intent(activity_transport.this, activity_auto.class));
            
        
);

【讨论】:

但我的代码中已经有一个监听器。在我的 onCreate 方法中查看 如果不需要循环。您已将 onclicklistener 设置为仅 btnAuto。 我在 oncreate 方法中实现了你的代码,但问题是一样的

以上是关于Android 应用程序 - 单击按钮不会打开新活动的主要内容,如果未能解决你的问题,请参考以下文章

Android:为EditText打开键盘时处理后退按钮单击

android 怎样设置单击一个按钮,不会重复弹出dialog

android 怎样设置单击一个按钮,不会重复弹出dialog

打开系统位置设置后android对话框不会关闭

单击通知按钮不会在颤动中打开应用程序

Android:单击按钮时默认选项卡式活动不会启动