我已经在我的活动XML文件中添加了一个按钮,但我无法打开其他活动。有人可以一步一步告诉我如何做到这一点吗?
答案 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)
在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));
}
});
这可能是大多数开发人员首选的方法。但是,有一个共同的选择。
或者,您可以使用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)
应用以下步骤:
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();
}
});