创建一个按钮,而不是将用户发送到主页面

时间:2015-02-02 04:22:35

标签: android

我是Android Studio世界的新手。我做了两个活动页面。第一页中的第一个按钮将用户发送到第二页,它可以正常工作

public void change(View v){
    setContentView(R.layout.activity_main_activity2);     

但我在第二页中创建了相同的按钮,向用户发送主页但没有运气。请查看代码并告诉我为什么会出现此错误。

 public void HomePage(View v){
    setContentView(R.layout.activity_main_activity);

这是第一个活动页面

package com.example.lenovo;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;


public class MainActivity extends ActionBarActivity {

private Menu menu;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}




@Override
public boolean onCreateOptionsMenu(Menu menu) {
    this.menu = menu;
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

public void change(View v){
    setContentView(R.layout.activity_main_activity2);
}
}

这是第二项活动

package com.example.lenovo;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;

import static com.chapter2.example.lenovo.chapter2.R.layout;


public class MainActivity2 extends ActionBarActivity {




@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(layout.activity_main_activity2);
    Button mButton = (Button) findViewById(R.id.button2);
    mButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent mIntent = new Intent(MainActivity2.this, 
MainActivity.class);
            startActivity(mIntent);
        }
    });
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main_activity2, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}
public void HomePage (View v){
    setContentView(R.layout.activity_main);
}
}

4 个答案:

答案 0 :(得分:0)

如果您想使用内置设备后退按钮,那么只需输入

即可
@Override
public void onBackPressed() {
    // TODO Auto-generated method stub
    super.onBackPressed();
}

如果您想通过按钮返回,请点击此行

    bbsubmit.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
        onBackPressed();
        }
    });
}

答案 1 :(得分:0)

目前,您正在切换Activity的布局而不是更改Activity。这不是在活动之间切换的正确方法。使用startActivity方法意图启动按钮上的下一个Activity点击:

MainActivity2开始MainActivity

 public void change(View v){
    Intent intent=new Intent(v.getContext(),MainActivity2.class);
    startActivity(intent);
}

MainActivity2开始MainActivity

 public void HomePage(View v){
    Intent intent=new Intent(v.getContext(),MainActivity.class);
    startActivity(intent);
}

并确保在AndroidManifest.xml

中添加了这两项活动

答案 2 :(得分:0)

在第一个活动中,当您单击按钮时,您不会启动mainactivity2.class,而只是更改内容视图。

并且R.id.button2未在第一个活动中注册。

所以它不起作用

答案 3 :(得分:0)

您必须使用Intent

将用户首页发送到第二页

您需要在此onClick布局中的该按钮中添加activity_main标记,如此

android:onClick="change"

activity_main_activity2中添加onClick标记在该按钮中

android:onClick="HomePage"

在setContentView的MainActivity2中改变如下

setContentView(R.layout.activity_main_activity2);

在第一项活动中,这样做

public void change(View v){
    Intent mIntent = new Intent(MainActivity.this,MainActivity2.class);
    startActivity(mIntent);
}

在第二项活动中,这样做

public void HomePage(View v){
    Intent mIntent = new Intent(MainActivity2.this,MainActivity.class);
    startActivity(mIntent);
}
  

不要忘记在清单

中声明这些活动