在android中单击按钮时,活动未移动到下一个活动?
我试图通过单击在android中单击按钮时,活动未移动到下一个活动?,android,android-activity,imagebutton,Android,Android Activity,Imagebutton,我试图通过单击ImageButton从一个活动移动到另一个活动。但当我单击to按钮时,它不会移动到我在代码中指定的活动,甚至它也不会抛出错误。我不明白问题出在哪里 以下是调用下一个活动的代码: package com.birthdayreminder; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.v
ImageButton
从一个活动移动到另一个活动。但当我单击to按钮时,它不会移动到我在代码中指定的活动,甚至它也不会抛出错误。我不明白问题出在哪里以下是调用下一个活动的代码:
package com.birthdayreminder;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
public class Reminder extends Activity {
ImageButton view, add, edit;
TextView tvadd, tvedit, tvview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_reminder);
}
public void innicialize() {
// assigning buttons
view = (ImageButton) findViewById(R.id.bView);
add = (ImageButton) findViewById(R.id.bAdd);
edit = (ImageButton) findViewById(R.id.bEdit);
// assign textview
tvadd = (TextView) findViewById(R.id.tvAdd);
tvedit = (TextView) findViewById(R.id.tvEdit);
tvview = (TextView) findViewById(R.id.tvView);
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(Reminder.this, Addreminder.class);
startActivity(i);
}
});
edit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// enter the code for bEditBtn click here
}
});
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// enter the code for bViewBtn click here
}
});
}
}
我还在manifest.xml
中声明了类名,但它不起作用
Logcat日志文件:点击按钮后最后一个Logcat文件的5行:
05-15 18:19:25.495: W/AudioFlinger(33): write blocked for 69 msecs, 1245 delayed
writes, thread 0xc658
05-15 18:19:28.964: I/ActivityManager(60): Starting: Intent {
act=com.birthdayreminder.REMINDER cmp=com.birthdayreminder/.Reminder } from pid 548
05-15 18:19:29.409: I/ActivityManager(60): Displayed
com.birthdayreminder/.Reminder: +426ms
尝试使用getApplicationContext()代替余数。这将使您在“添加”按钮上设置onClickListener
btnAdd.setOnClickListener(this);
同时检查
您的v.getId()
和案例R.id.bAdd:
是否相同?
调试并检查您的案例R.id.bAdd:是否正在执行。将第一个活动中的按钮分别初始化为
Button bAddbutton= (Button) findViewById(R.id.bAdd);
Button bEditBtn= (Button) findViewById(R.id.bEdit);
Button bViewBtn= (Button) findViewById(R.id.bView);
然后为每个按钮添加单独的onClick侦听器,如下所示
bAddbutton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(Reminder.this, Addreminder.class);
startActivity(i);
}
});
bEditBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// enter the code for bEditBtn click here
}
});
bViewBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// enter the code for bViewBtn click here
}
});
检查imagebutton上是否有一个click侦听器,您已经声明了单击时要执行的操作,但是如果imagebutton上没有任何侦听器,它无论如何都不会工作。 您可以尝试以下方法:
yourImageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Reminder.this, Addreminder.class);
startActivity(intent);
}
});
package com.birthdayreminder;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
public class Reminder extends Activity {
private ImageButton view;
private ImageButton add;
private ImageButton edit;
private TextView tvadd;
private TextView tvedit;
private TextView tvview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_reminder);
// Instantiating Buttons
view = (ImageButton) findViewById(R.id.bView);
add = (ImageButton) findViewById(R.id.bAdd);
edit = (ImageButton) findViewById(R.id.bEdit);
// Instantiating Views
tvadd = (TextView) findViewById(R.id.tvAdd);
tvedit = (TextView) findViewById(R.id.tvEdit);
tvview = (TextView) findViewById(R.id.tvView);
// Adding a clickListener on add button
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(Reminder.this, Addreminder.class);
startActivity(i);
}
});
// Adding a clickListener on edit button
edit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// enter the code for bEditBtn click here
}
});
// Adding a clickListener on view button
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// enter the code for bViewBtn click here
}
});
}
}
完成此操作后,必须在XML文件中声明活动
<activity android:name="packageName.className" />
如果仍然存在问题,请检查XML文件,并查看是否正确声明了按钮
问题修复:永远不要在函数中定义函数,因为每次调用第一个函数时,都会再次定义第二个函数。
你做错了什么:
onCreate { //WRONG VERSION
bla bla bla bla
initialisation {
bla bla bla
}
}
你必须做的是:
onCreate { //GOOD VERSION
initialisation();
bla bla bla
}
initialisation {
bla bla bla
}
可以在函数中调用函数,但不能在函数中定义函数
此外,您从未调用过初始化函数,现在必须在onCreate函数中调用它,否则什么也不会发生。初始化按钮,并在onCreate()中首先添加侦听器 按钮btnAdd=(按钮)findViewById(R.id.bAdd)
btnAdd.setOnClickListener(此) 您检查了是否输入了案例R.id.bAdd?是否为该imagebutton设置了onClick Listener?检查您的按钮id是否与bAdd匹配还检查LogCat双重检查以按钮id的意图编写的两个活动的名称。这与问题无关,但您应该避免在try catch上出现一般异常,还有空的catch blocks.sry我是android开发新手,我不知道如何使用“getApplicationContext()”更改此意图i=new Intent(rementer.this,addrementer.class);as Intent i=新的Intent(getApplicationContext(),Addreminder.class);您是否在第二个活动集ContentView(R.layout.addRequires)中完成了此操作;是的,我已经在我的Addreminder类中的
onCreate()
方法中指定了这个。并在menifest.xml文件中指定您提到的所有代码都是正确的。但点击按钮后,它不会对logcat做出任何反应。logcat保持空闲。你调试了你的应用程序吗?你的onClick被调用了吗?我的onClick方法甚至没有被调用。。。当我点击任何按钮名称问题时,logcat上没有响应。。。日志中没有输出您是否检查并确保按钮id正确?是的,我检查了按钮的所有id,它们相互匹配。我也在XML文件中进行了编码:
如果您使用此类启动应用程序,则没有问题,但是,如果这不是您启动应用程序时希望看到的第一个活动:它将是高效且更简单的。你有没有像我给你看的那样在你的图像按钮上做一个点击监听?或者你能用你的imagebutton声明给我看你的代码吗?我会编辑我的答案,尽可能地更正你的代码,我会给你一个小副本,我给你的代码,你不能在一个函数或过程中声明一个函数或过程,因为每次你调用onCreate,您将再次尝试声明初始化函数。因此,请直接在onCreate函数中执行初始化操作。是的:)亲爱的。。。。你的代码成功了。。再来一次。你能告诉我他们的密码出了什么问题吗。所以我不会再惹麻烦了。请再次感谢你宝贵的时间@Eydolol