如何在android中添加onclick侦听器
好的,我在android应用程序的主页上有多个按钮 我似乎在编写应用程序的过程中感到困惑如何在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
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