Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android中添加onclick侦听器_Android_Xml_Class - Fatal编程技术网

如何在android中添加onclick侦听器

如何在android中添加onclick侦听器,android,xml,class,Android,Xml,Class,好的,我在android应用程序的主页上有多个按钮 我似乎在编写应用程序的过程中感到困惑 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // In

好的,我在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" />

我正在写的任何代码在该页面上都不起作用?我不知道为什么?有人能帮忙吗


多谢各位

我认为您正在使用
setContentView()
调用另一个
活动
。 你必须使用意图

Intent in = new Intent(this,AboutUs.class);
startActivity(in);

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

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

更改您的
main活动如下:

    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));
    }
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);
    }
}
AboutUs.java
类似于:

    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));
    }
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,那么您就不能使用它。

我不清楚您的问题,您是否在xml中添加onClick?那么当你点击这个按钮时会发生什么呢?对不起,当我点击这个按钮时,会加载正确的xml页面。但是button click类中的所有代码都不工作@Monica我发布了我的xmlWell,这不是在android中更改视图的方式,如果你想导航到另一个视图,你需要启动另一个
活动,下面是你的方法。还有一篇你需要修改代码结构的博客文章。NARESH REDDY是对的,请检查他的ans,并在Manifests中添加其他类。你能多解释一点以便我理解吗?当你使用setContentView时,你将处于相同的活动中,因此在second activity中处理的单击在这里不起作用,因此当你想更改为另一个活动使用意图它给我一个错误,说我没有在android清单xml中声明该活动?那么你必须在
AndroidManifest.xml中定义
activity