0

我在 Android 中创建了第一个默认的 Hello World 页面,但我在那里放置了一个按钮来将屏幕移动到第二个窗口(我创建的)。但是当我点击第一个按钮时,它会将我移动到一个空白页面。

实际上我的第二页有一个按钮(显示第二页),但为什么 android 不显示呢?我错了吗?

MainActivity.java 文件内容为:

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

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

        Button b = (Button) findViewById(R.id.button1);

        b.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                startActivity(new Intent(MainActivity.this, Second.class));
            }
        });
    }


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


}

第二.java内容为:

import android.app.Activity;
import android.os.Bundle;

public class Second extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
    }

}

以下是应用截图:

  1. http://pbrd.co/YRNZvw
  2. http://pbrd.co/YRNNN5
4

3 回答 3

3

所以你说你的布局文件上activity_second.xml有一个按钮。当您切换到Graphic Layouteclipse时,您看到按钮了吗?你必须先在那里看到它。如果不是,它通常会告诉你原因。你也必须setContentView(R.layout.activity_second);onCreate二等舱。

编辑:

下次为了省点麻烦,因为您使用的是 eclipse,所以要向项目添加新活动,请执行以下操作:

click new -> android -> Android Activity

并从那里添加一个名称和一个可选的父活动。那应该为您完成所有基本接线,并且您不会遇到这个问题。

于 2013-03-19T16:30:49.697 回答
2

您在第二个活动的 OnCreate 中缺少 setContentView。

应该是这样的:

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);
}
于 2013-03-19T16:30:23.687 回答
1
setContentView(R.your_layout_id);

onCreate在第二种方法中调用它Activity

或像这样替换您的 onCreate 函数

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);




    Button button = new Button(this);
    button.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,   
            LayoutParams.WRAP_CONTENT));
    button.setText("Click Me");
    setContentView(button);


}
于 2013-03-19T16:30:33.527 回答