如何使按钮打开一个新的布局xml

时间:2014-08-25 11:51:53

标签: android xml eclipse button layout

我正在尝试为我的应用制作一个按钮,这会将屏幕带到另一个页面。但是,我没有成功。

我尝试了很多东西,没有得到解脱的答案。

我的项目在我的计划中不接受“意图”。 我需要打开一个新布局的按钮称为“OptionButton”

这就是我所拥有的:

MainActivity.java 中的

一开始我得到了这个

    public class MainActivity extends Activity  {

    private Button startButton;
    private Button pauseButton;
    private Button resetButton;
    public  Button OptionButton;

/** further I got this**/

        @Override
        public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

  /**  (I'm just mentioning this because I use savedInstanceState here too)**/

 /**MainActivity.java And my code for my button is this **/

     OptionButton = (Button) findViewById(R.id.Button1);
        OptionButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                myClick(v); /* my method to call new intent or activity */
            }
            public void myClick(View v) {
                Intent intent = new Intent(this, Background2.class);
                startActivity(intent);// for calling the activity
            }
        });
   }
  }
 }

我在AndroidManifest中添加了这个:

<activity android:name=".Background2"></activity>

这是第二课(src地图中的java文件)

(package & imports, then this:
public class Background2 extends Activity {

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

_ 我在src map中得到了2个类:    -Background2.java    -MainActivity.java

另外2个布局xml:

  • activity_main.xml中
  • activity main2.xml

在Activity_main中,我得到了按钮:

<Button
     android:id="@+id/Button1"
     style="?android:attr/buttonStyleSmall"
     android:layout_width="wrap_content"
     android:layout_height="35dp"
     android:layout_alignParentBottom="true"
     android:layout_alignParentLeft="true"
     android:text="@string/OptionButtonLabel"/>

仍然无法正常工作。我错过了什么?

太棒了!


我试过改变这个:

button1 = (Button) findViewById(R.id.button1); button1.setOnClickListener(this);

但它不起作用。

3 个答案:

答案 0 :(得分:2)

在侦听器内部调用this(指向侦听器本身),而您想要引用的是MainActivity

只需更改为

Intent intent = new Intent(MainActivity.this, Background2.class);

答案 1 :(得分:0)

You Main Activity必须实现OnClickListener

public class MainActivity extends Activity implements OnClickListener{

从Eclipse IDE按Ctrl + Shift + O,它将自动实现并导入必要的功能

答案 2 :(得分:0)

谢谢你的答案! :)

我已经尝试在我的真实设备上安装它。 现在,它打开,但它是打开的第二个xml,当我单击该按钮时,它会重新打开相同的xml。

: - /

我没有收到任何错误消息,但是当我更改你建议的解决方案时(来自你们两个人)