如何获得一个按钮来打开另一个活动?

时间:2014-07-07 12:21:50

标签: java android xml

我已经在我的活动XML文件中添加了一个按钮,但我无法打开其他活动。有人可以一步一步告诉我如何做到这一点吗?

9 个答案:

答案 0 :(得分:68)

一个。确保您的其他活动在清单中声明:

<activity
    android:name="MyOtherActivity"
    android:label="@string/app_name">
</activity>

所有活动必须在清单中声明,即使他们没有分配intent filter


B中。在您的MainActivity中执行以下操作:

Button btn = (Button)findViewById(R.id.open_activity_button);    

btn.setOnClickListener(new View.OnClickListener() {         
        @Override
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this, MyOtherActivity.class));
        }
});

答案 1 :(得分:16)

使用OnClickListener

Activity实例的onCreate()方法中,您需要先使用Button按其ID {1}}找到findViewById(),然后为您的按钮设置OnClickListener实施onClick()方法,以便启动新的Activity

Button yourButton = (Button) findViewById(R.id.your_buttons_id);

yourButton.setOnClickListener(new OnClickListener(){
    public void onClick(View v){                        
        startActivity(new Intent(YourCurrentActivity.this, YourNewActivity.class));
    }
});

这可能是大多数开发人员首选的方法。但是,有一个共同的选择。

在XML中使用onClick

或者,您可以使用android:onClick="yourMethodName"Activity中声明方法名称,当您点击Button时调用该方法名称,然后声明您的方法;

public void yourMethodName(View v){
    startActivity(new Intent(YourCurrentActivity.this, YourNewActivity.class));
}

此外,请不要忘记在Activity中声明新的manifest.xml。我希望这会有所帮助。

参考;

答案 2 :(得分:7)

如果您在xml文件中声明了与此类似的按钮:

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="next activity"
        android:onClick="goToActivity2"
        />

然后您可以通过将其放在java文件中来使用它来更改活动:

public void goToActivity2 (View view){
    Intent intent = new Intent (this, Main2Activity.class);
    startActivity(intent);
}

请注意,我的第二项活动名为“Main2Activity”

答案 3 :(得分:2)

Button T=(Button)findViewById(R.id.button_timer);
T.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent i=new Intent(getApplicationContext(),YOURACTIVITY.class);
        startActivity(i);
    }
});

答案 4 :(得分:1)

在xml文件上编写代码。

<Button android:width="wrap_content"
        android:height="wrap_content"
        android:id="@+id/button"
        android:text="Click"/>

在您的java文件中编写代码

Button button=(Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View v)
        {
            startActivity(new Intent(getApplicationContext(),Secondclass.class));
           /* if you want to finish the first activity then just call
            finish(); */
        }
    });

答案 5 :(得分:1)

应用以下步骤:

  1. 在文件夹布局中插入新的布局xml
  2. 重命名window2
  3. 添加新按钮并添加以下行:android:onClick =“window2”
  4. mainactivity.java

    public void openWindow2(View v) {
            //call window2
            setContentView(R.layout.window2);           
        }
    }
    

答案 6 :(得分:1)

我所做的与user9876226回答的相同。 唯一的区别是,我通常不使用onClickListener。相反,我在xml文件中写了以下内容:android:onClick="open"

open是绑定到按钮的函数。 然后只需在活动类中创建函数open()。当您单击按钮时,此函数将被称为:) 另外,我认为这种方式比使用监听器更舒适。

答案 7 :(得分:0)

使用以下代码在android studio中创建一个按钮,打开一个已存在的活动。

Button StartButton = (Button) findViewById(R.id.YOUR BUTTONS ID GOES HERE);

StartButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        startActivity(new Intent(MainActivity.this, YOUR ACTIVITY'S ID GOES HERE.class));
    }
});

答案 8 :(得分:0)

使用以下步骤添加新活动(Manifest 文件将自动更新)
文件>新建>活动>空活动

在您的 MainActivity.java 文件中,在 protected void onCreate(Bundle savedInstanceState) 中添加以下代码。

确保在最后调用 finish(); 函数。因此,当您点击“返回”按钮时,它不会返回上一个活动。

Button btn = (Button)findViewById(R.id.open_activity_button);    

btn.setOnClickListener(new View.OnClickListener() {         
        @Override
        public void onClick(View v) {
            startActivity(new Intent(MainActivity.this, MyOtherActivity.class));
            finish();

        }
});
相关问题