0

好的,所以我的 android 应用程序的主页上有多个按钮。

当我像这样编写应用程序时,我似乎一直感到困惑。

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

@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;
}

public void aboutus (final View view) {
    setContentView(R.layout.aboutus);
    System.out.println("about us clicked"); 
}

我已经在xml中点击了。

但是,我需要在“关于我们”页面中编写代码。

在我关于我们的课程中,我有以下内容

public class AboutUs extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.aboutus);
    }

    @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;
    }
    public void onBackPressed() {
        setContentView(R.layout.activity_main);
    }
}

这是正在单击的按钮的 xml 代码

<ImageButton
    android:id="@+id/ImageButton01"
    android:layout_width="134dp"
    android:layout_height="97dp"
    android:layout_x="16dp"
    android:layout_y="150dp"
    android:onClick="aboutus"
    android:src="@drawable/aboutus" />

我正在编写的任何代码都不适用于该页面?我不知道为什么?有人可以帮忙吗?

谢谢你。

4

3 回答 3

1

像这样改变你MainActivity

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

    @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;
    }

    public void aboutus(final View view)
    {
        startActivity(new Intent(MainActivity.this, AboutUs.class));
    }

就像AboutUs.java

public class AboutUs extends Activity{
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.aboutus);
    }

    @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;
    }

    /* No need of this method */
    public void onBackPressed() {
          setContentView(R.layout.activity_main);
    }
}

笔记:

android:onClick适用于API 级别 4及以上,因此如果您的目标是 < 1.6,那么您将无法使用它。

于 2013-10-09T11:20:16.457 回答
0

我想你是setContentView()用来打电话给另一个Activity。你必须使用意图

Intent in = new Intent(this,AboutUs.class);
startActivity(in);
于 2013-10-09T11:09:40.457 回答
0

您不能只调用setContentView您的 aboutus 方法,您需要创建一个启动新活动的意图。调用setContentView只是在当前主要活动中设置视图,而不是实例化您的AboutUs活动类。您的aboutus方法应类似于:

public void aboutus (final View view)
{   
    Intent intent = new Intent(this, AboutUs.class);
    startActivity(intent);
}
于 2013-10-09T11:11:31.780 回答