我正试图通过点击ImageButton
从一个活动转移到另一个活动。但是当我点击按钮时,它不会移动到我在代码中指定的活动,甚至它也不会引发错误。我不知道问题出在哪里
这是我的代码,它调用下一个活动:
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
答案 0 :(得分:1)
尝试使用getApplicationContext()代替Remainder.this
答案 1 :(得分:0)
你有没有在添加按钮上设置onClickListener。
btnAdd.setOnClickListener(this);
还要检查
是您的v.getId()
和case R.id.bAdd:
相同吗?
调试并检查你的案例R.id.bAdd:是否正在执行..
答案 2 :(得分:0)
单独初始化第一个活动中的按钮
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
}
});
答案 3 :(得分:0)
检查你的图像按钮上是否有点击监听器,你已经声明了在点击时做了什么,但如果你没有在图像按钮上有任何监听器,它无论如何都不会工作。 你可以尝试这样的事情:
yourImageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Reminder.this, Addreminder.class);
startActivity(intent);
}
});
执行此操作后,您必须在XML文件中声明活动
<activity android:name="packageName.className" />
最后,检查新班级是否也运作良好,但一定是好的!
=============================================== ===================================
你不能在函数中声明函数或过程(就像你在onCreate中所做的那样),你可以简单地在onCreate函数中初始化时做的事情如下:
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文件,看看您是否已经很好地声明了按钮。
问题已修复:永远不要在函数中定义函数,因为每次调用第一个函数时,您将再次定义第二个函数。 你做错了什么:
onCreate { //WRONG VERSION
bla bla bla bla
initialisation {
bla bla bla
}
}
你需要做什么:
onCreate { //GOOD VERSION
initialisation();
bla bla bla
}
initialisation {
bla bla bla
}
您可以在函数中调用函数,但不能在函数中定义函数。
此外,你永远不会调用你的初始化函数,你现在必须在onCreate函数中调用它,否则什么都不会发生。
答案 4 :(得分:0)
初始化按钮并首先在oncreate()
中添加侦听器按钮btnAdd =(按钮)findViewById(R.id.bAdd);
btnAdd.setOnClickListener(本);